Você está na página 1de 121

Universidade de Coimbra Faculdade de Ci encias e Tecnologia Departamento de Engenharia Inform atica

Mindu no

Margarida Costa Faria

Coimbra 1 de Setembro de 2010

Relat orio nal submetido para satisfa c ao parcial dos requesitos necess arios ` a obten c ao do grau de Mestre em Engenharia Inform atica, Faculdade de Ci encias e Tecnologia da Universidade de Coimbra.

Mindu no

Margarida Costa Faria


mcf@student.dei.uc.pt

Disserta c ao realizada sob a orienta c ao do Doutor Penousal Machado Professor Auxiliar da Universidade de Coimbra Faculdade de Ci encias e Tecnologia Departamento de Engenharia Inform atica

Resumo
Este projecto enquadra-se principalmente no dom nio da Computa c ao F sica1 . No entanto, devido a sua multidisciplinariedade recorre a conceitos de v ` arias outras areas, nomeadamente nos dom nios da Electr onica e da Rob otica Comportamental. A inova c ao do projecto reside em juntar um elemento do mundo f sico com outro do virtual enquanto mant em a funcionalidade de ambos. Foram escolhidos um copo para l apis e uma implementa c ao do envio de mensagens instant aneas2 . O agente rob otico resultante e enriquecido com a integra c ao de elementos tanto expressivos como emotivos baseados nos princ pios do cinema de anima c ao. Para atingir este objectivo, foram analisadas diferentes perspectivas e abordagens das v arias facetas do projecto. Da sua compara c ao foram tiradas directrizes para a constru c ao de um prot otipo. O robot resultante possuiu uma expressividade que conrma a import ancia destas linhas guias e sugere novas. Este relat orio cont em os detalhes do processo bem como os problemas e solu c oes encontrados durante a concretiza c ao.

Palavras-Chave
Physical Computing, Rob otica Comportamental, Interac c ao Humano-Computador

1 2

Do ingl es Physical Computing. Do ingl es Instant Messaging.

Abstract
This project merges an object from the physical world (a pencil cup) with another from the virtual one (an instant messaging service). The goal is to maintain the function of both while creating a robot enriched with emotional expression. Its behavior and interaction were developed to convey a life-like feel. Guidelines for the development come from the analyses of several case studies and the principles of animation. The resulting prototype has achieved a look and feel that breaks with the tradiotional approach, conrming the importance of said guidelines. The reactions to the prototype supply information to propose new ones. This report details the theoretical grounds as well as the development of the prototype. Keywords Physical Computing, Behavioral Robotics, Human-Computer Interface

iii

Agradecimentos
Gostaria de come car por agradecer ao meu orientador, Professor Doutor Penousal Machado, por me ter dado a oportunidade de explorar livremente mundos insuspeitos. O desenvolvimento do prot otipo pediu o apoio e orienta c ao de pessoas que comigo contactavam pela primeira vez, tive a sorte de merecer o seu tempo e conan ca. Nem estas palavras, nem o pouco que pude retribuir s ao sucientes para exprimir a minha gratid ao. Agrade co ao Clube de Rob otica do Departamento de Engenharia Electrot ecnica e de Computadores da Universidade de Coimbra, pela troca de conhecimento e apoio. Em especial, a Mauro Martins pela disponibilidade e pela orienta c ao no cr ptico mundo da Electr onica. A todos os membros da Audi encia Zero envolvidos na resid encia no Espa co do Tempo, por tornarem as fronteiras entre mundos cada dia mais enevoadas. Aos meus colegas e amigos, pelo apoio que me deram mas tamb em por me mostrarem os problemas que me eram invis veis. Particularmente, ao Alexandre Martins agrade co as pausas, as sugest oes e a disponibilidade. ` minha fam A lia, pelo incentivo e apoio incondicional. Em especial, ao meu pai e ` a ` minha tia Ana pelos debates e pelas in umeras revis oes desta tese. A minha prima Rita pelo ` minha m desenvolvimento do v deo de apresenta c ao. A ae pela for ca e a sabedoria que me permitiram chegar at e aqui. Por u ltimo, ao Nuno por me ter acompanhado de perto nesta aventura, por ter sempre espantado o des animo, em suma, por fazer parte da minha vida.

Coimbra, Portugal Setembro, 2010

Margarida Faria

Indice
1 Introdu c ao 1.1 Contextualiza c ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Objecto do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Estrutura da disserta ca o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Estado da arte 2.1 Agentes de software . . . . . . . . . . 2.1.1 Creatures . . . . . . . . . . . . 2.1.2 Black & White . . . . . . . . . 2.1.3 Tok e Edge of Intention . . . . 2.1.4 Arquitecturas c4 e c5M e Dobie 2.2 Agentes rob oticos . . . . . . . . . . . . 2.2.1 Keepon . . . . . . . . . . . . . 2.2.2 TOFU . . . . . . . . . . . . . . 2.2.3 Leonardo . . . . . . . . . . . . 2.2.4 Nabaztag . . . . . . . . . . . . 2.3 Compara c ao dos casos de estudo . . . 2.4 Plataformas rob oticas . . . . . . . . . 2.5 Emo c ao na gera c ao de voz . . . . . . . 1 1 2 2 3 3 4 5 7 10 13 13 14 15 16 17 22 24 25 25 26 26 27 29 30 30 31 31 33 33 36 38 40 40 41

. . . . . . . . . . . . . . . . . . . . . . . . T. Coyote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

3 Conceito do projecto 3.1 Contributo da compara c ao dos casos de estudo 3.2 Anatomia do robot . . . . . . . . . . . . . . . . 3.2.1 Estrutura . . . . . . . . . . . . . . . . . 3.2.2 Actuadores . . . . . . . . . . . . . . . . 3.2.3 Sensores . . . . . . . . . . . . . . . . . . 3.3 Interac c ao e comportamentos . . . . . . . . . . 3.3.1 Som . . . . . . . . . . . . . . . . . . . . 3.3.2 Mensagens de voz . . . . . . . . . . . . 3.3.3 Auto-preserva ca o . . . . . . . . . . . . . 4 Concretiza c ao 4.1 Desenvolvimento do conceito . . 4.2 Gera c ao de emo c ao na voz . . . . 4.3 Evolu c ao do prot otipo . . . . . . 4.4 Narrativa da evolu c ao do robot . 4.4.1 Encolher e esticar o corpo 4.4.2 Mudar de express ao . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . .

. . . . . . vii

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9

Processamento de sinal: som . . . . . . Qualidade do movimento vertical . . . . Sensor de peso . . . . . . . . . . . . . . Alimenta c ao dos motores . . . . . . . . Circuitos integrados . . . . . . . . . . . Expressividade . . . . . . . . . . . . . . Segunda fase de processamento de sinal

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

43 43 44 45 46 46 50 51 52 53 53 55 56 62 62 63 65 65 65 66 66 67 68 69 73 75 75 79 85 85 86 87 87 89 91 95 97 100

5 Implementa c ao 5.1 Controlador do Arduino . . . . . . . 5.2 Controlador geral . . . . . . . . . . . 5.2.1 Casos de uso . . . . . . . . . 5.2.2 Estrutura do c odigo . . . . . 5.2.3 Comportamento da aplica c ao 5.3 Cliente para gerar mensagens . . . . 5.4 An alise das caracter sticas do som . 5.5 Desenvolvimento da expressividade .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

6 Gest ao do projecto 6.1 Minimiza c ao de riscos . . . . . . . . . . . . 6.1.1 Testes . . . . . . . . . . . . . . . . . 6.1.2 Documenta c ao da evolu c ao . . . . . 6.2 Aquisi c ao de compet encias complementares 6.3 Distribui c ao do tempo . . . . . . . . . . . . 6.4 Divulga c ao . . . . . . . . . . . . . . . . . . 7 Discuss ao de resultados 8 Conclus oes Ap endices

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

A Processo de cria c ao de uma placa electr onica B Estrutura do robot C Placas criadas para o robot C.1 Alimenta c ao dos motores C.2 Sensor de peso . . . . . . C.3 Conector para energia . . C.4 LEDs . . . . . . . . . . . C.5 Interruptor de energia . . D Detalhes de implementa c ao E Question ario Termos e Siglas Bibliograa

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

viii

Lista de Tabelas
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 4.1 4.2 Estruturas utilizadas na representa c oes do conhecimento. . . . . . . . . . . Liga c ao entre as ac c oes e as emo c oes que delas resultam. . . . . . . . . . . . Emo c oes resultantes da coexist encia de emo c oes geradas por ac c oes. . . . . Seis dos doze princ pios da anima c ao [Johnston & Thomas 1995]. . . . . . . Funcionalidades relativas ` a capacidade cognitiva. . . . . . . . . . . . . . . . Crit erios para a credibilidade indicados pelo projecto Oz. . . . . . . . . . . Enumera c ao das caracter sticas analisadas e a sua presen ca (x) ou aus encia (-) em cada caso de estudo. . . . . . . . . . . . . . . . . . . . . . . . . . . . Compara c ao das caracter sticas analisadas nas v arias plataformas rob oticas. Enumera c ao dos objectos encontrados em 26 secret arias e sua respectiva frequ encia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabela com os valores utilizados para para manipular as caracter sticas do som [Pierre-Yves 2003]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C odigo ASCII de cada comando do controlador do Arduino . . . . . . . . . Faixas et arias dos inquiridos. . . Caracteriza c ao da expressividade. Actividades identicadas. . . . . Classica c ao do robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 8 9 10 20 20 21 23

34 36 53 70 70 71 71 87

5.1 7.1 7.2 7.3 7.4

C.1 Ganhos experimentados para o sensor de peso. . . . . . . . . . . . . . . . .

ix

Lista de Figuras
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.1 3.2 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.1 5.2 5.3 5.4 5.5 5.6 5.7 Um exemplo de uma criatura em Creatures. . . . . . . Dois exemplos da mascote macaco de Black & White. Tr es woggles, os agentes de Edge of Intention. . . . . . Exemplo de comprimir e esticar. . . . . . . . . . . . . Dobie T. Coyote aprendendo atrav es do m etodo Cliker Imagens dos robots Keepon e Infanoide. . . . . . . . . A apar encia de Tofu. . . . . . . . . . . . . . . . . . . . O robot Leonardo cumprimentando a c amara. . . . . . O robot Nabaztag com algumas das suas luzes ligadas. . . . . . . . . . . . . . . . . . . . . . . . . Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6 9 9 12 13 14 15 16 28 29 35 38 39 42 43 45 46 47 48 52 54 55 57 62 63 64 77 80 82 83

Esquema da estrutura do robot com sensores e actuadores. . . . . . . . . . As v arias express oes do robot. . . . . . . . . . . . . . . . . . . . . . . . . . . Potencial expressivo do copo para l apis. . . . . . . . . . . . . . . . . Vers oes um a tr es do prot otipo. . . . . . . . . . . . . . . . . . . . . . Vers oes quatro a quinze do prot otipo. . . . . . . . . . . . . . . . . . Solu c oes mec anicas para o movimento vertical. . . . . . . . . . . . . Dois detalhes da solu ca o mec anica para integrar a rota c ao das caras. Circuitos para o sensor de peso montados numa breadboard. . . . . . Circuito do regulador de tens ao LM7805 montado na breadboard. . . As v arias placas feitas para o robot e sua cablagem. . . . . . . . . . Placa feita para os LEDs. . . . . . . . . . . . . . . . . . . . . . . . . Arquitectura do software do robot. . . . . . . . . . . . Casos de uso do robot. . . . . . . . . . . . . . . . . . . Meios de interac c ao entre threads. . . . . . . . . . . . . Diagramas de actividade. . . . . . . . . . . . . . . . . Interface gr aco do cliente de gera c ao de mensagens de Interface gr aco da ferramenta de explora c ao de som. Interface gr aco do software de testes. . . . . . . . . . . . . . . . . . . . . . voz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.1 As v arias fases no processo de cria c ao de uma placa. . . . . . . . . . . . . . B.1 Esquema da estrutura do robot. . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Mecanismo para transformar o movimento do motor. . . . . . . . . . . . . . B.3 Liga c oes el ectricas entre os v arios componentes. . . . . . . . . . . . . . . . . xi

B.4 As pe cas A, C e D identicadas na estrutura. . . . . . . . . . . . . . . . . . B.5 As pe cas B e E identicadas na estrutura. . . . . . . . . . . . . . . . . . . . C.1 C.2 C.3 C.4 C.5 Fases Fases Fases Fases Fases da da da da da placa placa placa placa placa de alimenta c ao dos motores. . . . . . . . para o sensor de peso. . . . . . . . . . . . de alimenta c ao do robot. . . . . . . . . . com os LEDs. . . . . . . . . . . . . . . . com o interruptor para a alimenta c ao dos . . . . . . . . . . . . . . . . . . . . . . . . motores. . . . . . . . . . . . . . . . . . . . . . . . . .

83 84 86 88 89 90 90 92 95 96

D.1 Diagrama de classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E.1 Parte da primeira p agina do question ario. . . . . . . . . . . . . . . . . . . . E.2 Continua c ao do question ario. . . . . . . . . . . . . . . . . . . . . . . . . . .

xii

Lista de Algoritmos
1 2 3 4 5 6 7 8 9 Algoritmo de escolha de planos implementado por Hap. Algoritmo para a gera c ao de frases. . . . . . . . . . . . . Algoritmo implementado para a gera c ao de som. . . . . Classica c ao do som . . . . . . . . . . . . . . . . . . . . Processo de decis ao das reac c oes . . . . . . . . . . . . . Transforma c ao de ExpressYourself em Action . . . . . . Transforma c ao de uma ordem relativa . . . . . . . . . . Transforma c ao de uma ordem absoluta . . . . . . . . . . Transforma c ao de uma ordem de ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 24 37 58 60 61 91 93 93

xiii

Cap tulo 1

Introdu c ao
Este trabalho de investiga c ao insere-se na cadeira de est agio do mestrado em Engenharia Inform atica do Departamento de Inform atica da Universidade de Coimbra. Neste cap tulo encontra-se a contextualiza c ao, a descri c ao do objecto do trabalho e a estrutura do relat orio.

1.1

Contextualiza c ao

A area da rob otica pessoal encontra-se em expans ao. Se for feita uma observa c ao cuidada, cada pessoa no seu dia-a-dia, e sem se dar conta, est a rodeada por robots. Trata-se de agentes automatizados que cumprem as suas fun c oes com o objectivo de facilitar a rotina di aria. Estas m aquinas n ao apresentam emo c oes e, geralmente, n ao t em a capacidade de alterar autonomamente as suas reac c oes ao longo do tempo. Na area dos jogos, especialmente em jogos de interpreta c ao de personagens, come cam a surgir personagens independentes do jogador regidas por motores de Intelig encia Articial cada vez mais poderosos. Elas permitem uma experi encia de jogo mais intensa, uma vez que d ao maior liberdade ao jogador e possibilitam que as personagens se comportem de maneira diferente em cada jogo. Em ambos os dom nios investigam-se formas alternativas aos meios tradicionais de interac c ao com a m aquina. Procurando-se formas mais intuitivas de transmitir comandos ou de obter informa c oes sobre o estado de funcionamento dos equipamentos. Neste projecto pretende-se integrar num u nico robot os conceitos resultantes das diversas quest oes mencionadas, beneciar da ubiquidade da internet e incorporar as li c oes sobre expressividade aprendidas das t ecnicas utilizadas pelos desenhadores de cinema de anima c ao. 1

Cap tulo 1. Introdu c ao

1.2

Objecto do trabalho

Neste trabalho proponho-me criar o prot otipo de um agente rob otico que cumpra uma fun c ao concreta e tenha credibilidade enquanto personagem, recorrendo a estados emocionais e a princ pios da anima c ao para se exprimir. Por ser um prot otipo, n ao v ao ser focadas quest oes como a seguran ca e optimiza c ao de recursos. Estas quest oes, devido ` a sua complexidade, s o podem ser avaliadas ap os a implementa c ao de uma primeira vers ao do sistema. A m etrica para avaliar o agente consistir a na forma como as pessoas o v eem: a ilus ao de vida que cria e o afastamento da percep c ao cl assica de uma m aquina.

1.3

Estrutura da disserta c ao

No pr oximo cap tulo e feita a caracteriza ca o do estado da arte que foca tr es ambitos distintos: a descri c ao dos casos de estudo analisados, as plataformas rob oticas consideradas para a implementa c ao do projecto e a descri c ao de um algoritmo para a gera c ao de emo c ao em discurso sem sentido. O terceiro cap tulo cont em a descri c ao do conceito do projecto. Come ca por resumir o contributo da compara c ao dos casos de estudo; de seguida detalha a anatomia do robot: a sua estrutura, os actuadores e sensores utilizados na vers ao nal e termina com a descri c ao do comportamento e formas de interac c ao. O quarto cap tulo foca-se na concretiza c ao do robot: o desenvolvimento do conceito, o algoritmo de gera c ao de voz implementado e a evolu c ao do prot otipo quer atrav es de fotograas quer textualmente. J a o quinto cap tulo e dirigido ao aspecto do software. S ao descritos os cinco programas desenvolvidos dando particular destaque ao controlador principal do robot. No sexto cap tulo e indicada a forma de gerir o projecto: as medidas para minimizar o risco inerente ` a sua natureza explorat oria, os meios utilizados para adquirir compet encias complementares e a organiza c ao do tempo dispendido. Finalmente no s etimo e u ltimo cap tulo s ao apresentados e discutidos os resultados e tiradas as conclus oes sobre todo o projecto. Nos ap endices encontra-se informa c ao relevante para o projecto mas demasiado detalhada para integrar o corpo do relat orio.

Cap tulo 2

Estado da arte
O projecto a desenvolver tem caracter sticas multidisciplinares, raz ao pela qual s ao analisadas neste cap tulo diferentes casos de estudo e diferentes tecnologias. Os casos de estudo consistem, tanto em agentes unicamente constitu dos por software, como em agentes que tamb em interagem com o mundo atrav es de uma plataforma rob otica. Para ambos procurou-se escolher exemplos com diferentes inspira c oes e com uma boa conjuga c ao de documenta c ao, originalidade e relev ancia. Em cada um deles procura-se fazer uma descri c ao das caracter sticas mais relevantes focando a sua implementa c ao e as suas ` an inu encias. A alise detalhada segue-se a compara c ao cr tica. No ambito da tecnologia, em termos de hardware, foram analisadas v arias plataformas rob oticas com o objectivo de encontrar a mais adequada ao presente projecto. Foi tamb em analisado o dom nio da gera c ao de voz e, mais especicamente, a produ c ao de voz com emo c ao, utilizando por em palavras desprovidas de sentido.

2.1

Agentes de software

O conceito de um programa que crie a ilus ao de estar vivo n ao e recente: j a em 1950 foi proposta uma forma de testar a capacidade de se fazer passar por um ser humano [Turing 1950]. As teorias que rodeiam este tema s ao t ao diversas como abundantes, j a foram aplicadas aos mais variados temas. Hoje em dia esta quest ao come ca inclusivamente a surgir na area dos jogos, exemplos disso s ao o EyePet [SCE London Studio 2009] ou a saga Fables [Lionhead Studio 2010]. De seguida apresenta-se uma an alise feita sobre uma selec c ao de casos considerados mais relevantes para o objecto deste projecto. 3

Cap tulo 2. Estado da arte

2.1.1

Creatures

O Creatures [Grand et al. 1997]1 e um jogo de vida articial. A sua relev ancia para este trabalho reside na componente de aprendizagem de cada criatura. S ao de particular import ancia a quantidade de capacidades a aprender, o m etodo de aprendizagem e a forma como e poss vel alterar o que j a foi aprendido. Os autores do jogo tentaram aproximar o mais poss vel a arquitectura dos agentes (as criaturas) ao funcionamento biol ogico dos seres vivos. Esta inu encia levou ` a cria c ao de mecanismos como o c erebro, a gen etica e a bioqu mica, adoptando uma abordagem bottomup. Foram explicitamente implementados conceitos como neur onio, dendrite, gene, emissor qu mico, ou estrutura bioqu mica. Inclusivamente, a gera c ao de novas criaturas foi feita atrav es de um algoritmo evolucion ario. Em cada instante, os agentes focam-se num u nico objecto para diminuir a quantidade de processamento. Para decidir em qual objecto se foca a aten c ao, e calculada a soma da intensidade com a frequ encia do est mulo de cada objecto atrav es do tempo. O objecto com a soma mais elevada ganha a aten c ao do agente. O modelo global de tomada de decis oes e Behaviorista2 implementado atrav es de uma rede neuronal com ajuste de pesos. Um grupo de neur onios (o espa co dos conceitos) cont em a mem oria de acontecimentos anteriores; um outro grupo (a camada de decis ao) relaciona-os, tomando decis oes. A aprendizagem altera estas rela c oes criando novos conceitos, quando necess ario. As rela c oes entre informa c ao sensorial e ac c oes s ao armazenadas servindo de mem oria e para generalizar conceitos atrav es da pesquisa de padr oes. J a a aquisi c ao de conhecimento e feita atrav es de Aprendizagem atrav es de Refor co com Desfasamento Temporal mediante a altera c ao dos pesos decorrente
A informa ca o aqui mencionada sobre o jogo Creatures foi, maioritariamente, recolhida do artigo [Grand et al. 1997] 2 Do ingl es Behaviourism, teoria da Psicologia que defende que todas as ac co es de organismos resultam dos est mulos do exterior.
1

Figura 2.1: Um exemplo de uma criatura em Creatures. 4

Cap tulo 2. Estado da arte

de recompensas ou de castigos qu micos gerados pelas motiva c oes internas do agente. As ac c oes do agente despoletam tamb em encadeamentos de acontecimentos. Estas mudan cas positivas e negativas podem inserir-se quer no seu ambiente, quer no seu corpo (atrav es da bioqu mica). Isto leva a que a aprendizagem seja feita online, de forma directa e indirecta, com e sem supervis ao e tanto pode ser controlada pelo utilizador como pelo computador. A riqueza de fontes de aprendizagem leva a que rapidamente cada agente se torne u nico. Outro factor que contribui para este fen omeno e o algoritmo gen etico utilizado na gera c ao de um agente. Uma falha relevante deste jogo consiste na aus encia da associa c ao de prioridades a comportamentos mais b asicos, como comer ou defender a integridade f sica. Estas fun c oes vitais t em a mesma diculdade de aprendizagem que outras menos importantes (usar um elevador, por exemplo) criando alguma sensa c ao de articialidade.

2.1.2

Black & White

O Black & White e tamb em um jogo, concebido de forma a que cada jogador represente um deus. Para avan car no jogo e necess ario ser-se adoptado pela popula c ao das aldeias e lutar com outros deuses. A mascote que o deus (ver gura 2.2) possui e o elemento do jogo com poss uma componente de IA mais forte. E vel ensinar a esta mascote qualquer ac c ao que o jogador consiga fazer, o que ela aprende, molda a sua personalidade e inuencia as suas ac c oes. O motor de IA n ao se cinge apenas ` a criatura; os alde oes tamb em s ao condicionados por ele. Cada alde ao tem diferentes desejos, motiva c oes e personalidade, mas aqui o motor de IA e limitado para ajustar a complexidade do alde ao a um custo computacional mais baixo [Molyneux 2001]. O motor de IA que rege a mascote utiliza arvores de decis ao para tomar decis oes e um algoritmo de Aprendizagem com Refor co para aprender. O que se destaca no processo de tomada de decis ao e a utiliza c ao de v arios tipos de representa c ao do conhecimento. Em Creatures existia j a uma separa c ao entre os v arios dom nios da representa c ao da criatura (como por exemplo um c odigo gen etico para as suas caracter sticas, ou a representa c ao separada de factores bioqu micos) mas aqui a separa c ao e ainda mais clara. Tal como est a explicitado na tabela 2.1, as cren cas acerca de objectos espec cos s ao representadas como uma lista de pares entre atributos e valores; as opini oes acerca de tipos de objectos s ao representadas atrav es de arvores de decis ao; os desejos tomam a forma de perceptr oes; nalmente, as inten c oes adoptam a forma de planos. 5

Cap tulo 2. Estado da arte

(a) Macaco mau.

(b) Macaco bom.

Figura 2.2: Dois exemplos da mascote macaco de Black & White. Tabela 2.1: Estruturas utilizadas na representa c oes do conhecimento.

Conhecimento Cren cas sobre objectos concretos Opini oes sobre tipos de objectos Desejos Inten c oes

Representa c ao Listas de pares <objecto, atributo> Arvores de decis ao Perceptr oes Planos

Esta diversidade de representa c ao d a uma grande exibilidade ao motor de IA para formar planos que incorporam naturalmente v arios n veis de abstrac c ao. O agente forma um plano para cada um dos seus desejos actuais. Para cada um deles, o agente pesquisa todas as cren cas relevantes, procurando a cren ca acerca da qual tem uma melhor opini ao. Para escolher entre os v arios planos, o agente calcula a sua utilidade integrando as v arias componentes: intensidade do desejo e da sua opini ao acerca desse desejo e desse objecto, utilizando a equa c ao indicada em 2.1.1 [Evans 2002]. Isto elimina um dos factores de articialidade existentes em Creatures, uma vez que o agente e capaz de dar a import ancia apropriada a cada tarefa.

U tilidade(desejo, objecto) = intensidade(desejo) opini ao(desejo, objecto)

(2.1.1)

Relativamente ` a implementa c ao do algoritmo de Aprendizagem atrav es de Refor co, e importante referir que ultrapassa o problema da generaliza c ao em excesso, que poderia impossibilitar o ensino de comportamentos mais sosticados. Exemplicando: se uma criatura for ensinada a n ao atacar uma aldeia aliada, ela pode aprender a n ao atacar qualquer aldeia sem distin c ao entre fac c oes. A partir desse momento, e imposs vel ensinar a distin c ao entre inimigos e aliados, uma vez que a criatura nunca mais volta a atacar uma aldeia. Para ultrapassar este problema a aprendizagem passa a ser feita em contexto e atrav es de exemplo. A criatura n ao s o observa a ac c ao executada pelo jogador como leva em considera c ao 6

Cap tulo 2. Estado da arte

qual o desejo que a poder a ter motivado. O que e aprendido passa a ser a execu c ao de uma determinada ac c ao em rela c ao a um objecto, quando motivada por um desejo em particular, por oposi c ao ` a simples execu c ao dessa ac c ao sempre que interage com o objecto [Evans 2002]. A possibilidade de ensinar ` a criatura todas as ac c oes do jogador aproxima o jogador do agente. Um dos principais objectivos no desenvolvimento deste jogo consistiu em poder seleccionar uma criatura e transform a-la num ser inteligente com a capacidade de aprender, agir inteligentemente e de responder aos pedidos do jogador [Molyneux 2001]. Este objectivo foi largamente atingido, o resultado nal e uma criatura tem consist encia suciente para se expressar credivelmente enquanto ser vivo. Para alcan car este resultado o motor de IA desenvolvido e extremamente poderoso.

2.1.3

Tok e Edge of Intention

A arquitectura Tok [Bates et al. 1992] foi desenvolvida no ambito do projecto Oz, levado a cabo por uma equipa cheada pelo professor Joseph Bates da Universidade de Carnegie Mellon. A arquitectura Tok foi desenvolvida com o objectivo de criar agentes que interagissem com um mundo simulado, servindo de meio ambiente para uma experi encia semelhante a um jogo de interpreta c ao de personagens. Esta arquitectura tem ainda a particularidade de os agentes n ao controlados pelo utilizador expressarem um comportamento cred vel enquanto ser vivo [Bates 2002]. A arquitectura divide-se em tr es componentes: o centro de decis ao (Hap), o centro emocional (Em) e o centro sensorial. De particular relev ancia para a presente disserta c ao s ao Hap e Em, que ser ao analisados com mais detalhe. importante salientar que O centro de decis ao Hap e reactivo e orientado a objectivos. E n ao ocorre aprendizagem de novas ac c oes. A informa c ao relativa ` as ac c oes e decomposta em objectivos e planos. Neste sistema, o planeamento n ao e expl cito: um plano e constitu do seleccionado um por um conjunto de ac c oes que est a associado a um ou mais objectivos. E plano em fun c ao das suas pr e-condi c oes e do seu sucesso passado. O agente mant em uma representa c ao dos objectivos e dos planos activos atrav es de uma arvore AND-OR, onde os objectivos correspondem a n os OR e os planos a n os AND. A arvore expande-se e contraise ` a medida que os planos e objectivos s ao bem sucedidos (se o objectivo for atingido) ou falham (se as pr e-condi c oes j a n ao forem aplic aveis). No algoritmo 1 encontra-se descrito em pseudo-c odigo a manuten c ao da arvore de decis ao. As prefer encias para a escolha de folhas 7

Cap tulo 2. Estado da arte

t em como primeiro crit erio a prioridade e como segundo manter a linha de execu c ao. Na escolha de um novo plano, tem prioridade o mais espec co e nunca s ao escolhidos planos falhados. Algoritmo 1 Algoritmo de escolha de planos implementado por Hap. for all objectivos do if testeDeSucesso(objectivo) = true then remove(objectivo) end if end for for all planos do if testeDePr eCondi c oes(plano) = false then remove(plano) end if end for objectivo = escolheObjectivoF olha() if objectivo = PRIMITIVA then age() else escolheSubObjectivo(objectivo) end if

O centro emocional Em calcula o efeito das decis oes tomadas por Hap no estado emocional. As ac c oes, juntamente com a emo c ao que implicam, est ao descritas nas tabelas 2.2 e 2.3. Existem duas emo c oes especiais que n ao s ao mencionadas nas tabelas: o amor e o odio. Estas duas emo c oes s ao inuenciadas pela proximidade de objectos acerca dos quais o agente tenha uma atitude. Enquanto as emo c oes s ao vol ateis, as atitudes s ao bastante mais est aveis, sendo contudo inuenciadas pelas emo c oes de raiva e de gratid ao [Bates et al. 1992] (pp. 2-7). Tabela 2.2: Liga c ao entre as ac c oes e as emo c oes que delas resultam.

Evento Desencadeador O objectivo e atingido? Probabilidade de um objectivo ser atingido Ac c ao

Classica c ao Sim N ao Alta Baixa Ajuda Objectivo Impede Objectivo

Emo c ao Feliz Triste Esperan ca Medo Orgulho Admira c ao Vergonha Censura

Fonte da ac c ao Interno Externo Interno Externo

O projecto tem dois interfaces, um textual e um gr aco, sendo importante referir alguns 8

Cap tulo 2. Estado da arte

Tabela 2.3: Emo c oes resultantes da coexist encia de emo c oes geradas por ac c oes.

Cumprimento de objectivos Tristeza Alegria Tristeza Alegria

Resultado da ac c ao Censura Admira c ao Vergonha Orgulho

Emo c ao resultante Raiva Gratid ao Remorso Gratica c ao

Figura 2.3: Tr es woggles, os agentes de Edge of Intention.

aspectos relativos a este u ltimo, o designado por Edge of Intention. Trata-se de um interface especial, por ser a aplica ca o de um estudo acerca das t ecnicas mais apropriadas para conseguir imprimir expressividade aos agentes. Bates [1994] (pp.122-1224) considera que investigadores de IA e desenhadores de cinema de anima c ao t em em comum o objectivo de criar a ilus ao de vida, embora adoptem abordagens diferentes para atingir este objectivo: os investigadores estudam como dotar um agente de capacidades consideradas centrais ` a intelig encia, como tomar decis oes ou construir conceitos, enquanto os animadores procuram a forma mais ecaz de criar a ilus ao de que os seus desenhos s ao dotados dessas e de outras capacidades. O trabalho de Johnston & Thomas [1995] na area de anima c ao e uma refer encia, tendo a sido descritos os princ pios da anima c ao utilizadas nos est udios Disney. Nesta an alise considera-se relevante descrever apenas aqueles que s ao aplic aveis a agentes rob oticos (tabela 2.4).

Figura 2.4: Exemplo de comprimir e esticar. 9

Cap tulo 2. Estado da arte

Tabela 2.4: Seis dos doze princ pios da anima c ao [Johnston & Thomas 1995].

Princ pio Comprimir e esticar

Acelera c ao e desacelara c ao Arcos de movimento

Exagero nos movimentos Ac c oes secund arias Antecipa c ao

Deni c ao Esticar e comprimir um objecto sem alterar o volume retratado para mostrar pela deforma c ao de um objeto o seu peso e exibilidade. Exemplo na gura 2.4 Aplica c ao do princ pio b asico da din amica: os corpos acelerem e desacelerem gradualmente. A maioria dos movimentos realizados por seres vivos descreve arcos, pelo que este tipo de movimentos torna a anima c ao mais realista. Amplia c ao de movimentos bruscos ou express oes faciais j a existentes. Ac c oes desencadeadas por outros movimentos (movimenta c ao da roupa quando um personagem corre) Prepara c ao da ac c ao principal (dobrar os joelhos antes de saltar)

Edge of Intention integra as duas abordagens ao usar princ pios e t ecnicas de anima c ao nas ac c oes gr acas do agente e uma arquitectura complexa para a autonomia do agente. Este exerc cio leva a interessantes conclus oes, quer na perspectiva da implementa c ao, quer na da expressividade. Para atingir comportamentos mais realistas, era frequentemente necess ario quebrar as abstrac c oes impostas pela arquitectura. A exist encia de comportamentos an omalos, devidos a erros, dava credibilidade e personalidade aos agentes, como se estes tivessem um tique. Na aus encia da aplica c ao de princ pios da anima c ao de forma a exagerar a emo c ao exprimida, alguns comportamentos mais amb guos, como amuar, passavam despercebidos ao utilizador comum [Bates 1994]. interessante observar que neste trabalho se chega a uma conclus E ao que e comum ao de Evans [2002] decorrente do jogo Black & White : para obter comportamentos satisfat orios, o n vel de abstrac c ao tem que permitir que cada agente aja e reaja de forma diferente. Finalmente, e de real car que, nesta abordagem, a decis ao de excluir mecanismos de aprendizagem permite reduzir a modeliza c ao do mundo, o que explica a inexist encia de estruturas de organiza c ao da mem oria. Apenas h a uma excep c ao quanto ` as atitudes: estas desempenham o mesmo papel que cabe ao desejo em Black & White, motivando a ac c ao de forma mais simplicada.

2.1.4

Arquitecturas c4 e c5M e Dobie T. Coyote

A arquitectura c4 [Isla, Burke, Downie & Blumberg 2001], desenvolvida pelo Grupo de Pesquisa de Personagens Sint eticos, do MIT Media Lab, liderado pelo professor Bruce Blumberg foi constru da para servir de base ` a cria c ao de personagens sint eticos com a mesma 10

Cap tulo 2. Estado da arte

intelig encia, capacidade adaptativa e empatia de um c ao. importante indicar que nesta sec E c ao s ao descritas em conjunto as arquitecturas c4 [Isla et al. 2001] e c5M [Berlin 2008] por falta de documenta c ao. A fam lia de arquitecturas a que este sistema cognitivo pertence tem a particularidade de estar em desenvolvimento h a mais de dez anos, o que leva a que incorpore diversas inspira c oes e preocupa c oes. A exist encia de m odulos separados que cumprem fun c oes simples e que levam a um comportamento mais complexo revelam a inu encia da Etologia, do Society of the Mind de Minsky [1988] e do Vehicles de Braitenberg [1986]. O funcionamento do m odulo de motricidade e inuenciado pela experi encia dos desenhadores do cinema de anima c ao feito nos est udios Disney. As posi c oes que o agente pode adoptar s ao representadas atrav es de um grafo de posi c oes, o movimento constr oi-se atrav es da navega c ao dentro do grafo. Este mecanismo permite a cria c ao din amica de movimentos que observam as limita c oes motrizes do agente. Uma outra inu encia e a teoria de Bratman [1999] que sustenta que o racioc nio pr atico humano e baseado em cren cas, desejos e inten c oes. Embora este modelo n ao esteja implementado explicitamente, e usado como inspira c ao para o design dos objectivos da personagem [Thomaz 2006] (p. 53). Tamb em s ao incorporadas ideias de Brooks [1986], nomeadamente o uso de uma arquitectura de subordina c ao; n ao s o os m odulos de n vel mais abstracto controlam os de menor abstrac c ao atrav es de sinais, como e aplicada a ideia inversa. Por exemplo, o m odulo de motricidade pode anular uma ordem do m odulo de tomada de decis oes (para ir de A a B e necess ario desviar um obst aculo) [Burke et al. 2001] (p. 17). Tamb em neste sistema s ao adoptadas v arias formas de representa c ao, fazendo-se aqui a distin c ao entre padr oes de movimento, percep c oes e tarefas. Existem duas arvores hier arquicas, sendo uma para organizar as percep c oes e outra para organizar os padr oes de movimento. Em ambas, os v ertices mais gen ericos situam-se na raiz, estando os mais espec cos nas folhas; esta arquitectura diminui o espa co de procura do sistema. As tarefas s ao representadas por tuplos de cinco elementos, em que dois dos elementos consistem numa percep c ao e numa ac c ao, descrevendo respectivamente quando e o que fazer. Os restantes tr es indicam a dura c ao, o objecto e a motiva c ao da ac c ao. O mecanismo de selec c ao cria grupos para evitar que o sistema possa assumir comportamentos mutuamente exclusivos e continue a permitir ac c oes simult aneas [Blumberg et al. 2002] (pp. 4-5). Comparando com as arquitecturas atr as descritas, e curioso observar que tamb em em Creatures e em Black & White s ao usadas representa c oes diferentes para diferentes aspectos da estrutura cognitiva. Contudo o Black & White continua a ser o u nico a diferenciar entre aspectos do pr oprio conhecimento 11

Cap tulo 2. Estado da arte

Figura 2.5: Dobie T. Coyote aprendendo atrav es do m etodo Cliker Training

(por oposi c ao a diferenciar entre aspectos f sicos ou bioqu micos). Para fazer a aprendizagem de comportamentos, sempre que ocorre um evento considerado positivo, o sistema aumenta o cr edito de um dos tuplos. O tuplo recompensado e aquele com a representa c ao mais espec ca, quer da ac c ao realizada quer da percep c ao do est mulo. Para o u ltimo aspecto, tamb em importa que tenha provocado a recompensa mais vezes e que tenha estado activo menos vezes. Este mecanismo de atribui c ao de cr edito provoca uma delega c ao de m erito dos tuplos mais gen ericos para os mais espec cos, uma vez que a recompensa n ao e atribu da necessariamente ao tuplo que provocou a ac c ao. Este e talvez o aspecto em que esta arquitectura mais difere da abordagem gen erica de aprendizagem por refor co [Blumberg et al. 2002] (pp. 4-5). E inclusivamente poss vel aprender movimentos totalmente novos, uma vez que os movimentos poss veis est ao guardados sob a forma de grafos de poses, pelo que e poss vel aprender novas sequ encias de movimentos sem nunca sair dos movimentos poss veis [Burke et al. 2001] (p. 16). Foram desenvolvidos v arios projectos utilizando esta fam lia de arquitecturas. Por exemplo, o agente Dobie Terence Coyote (Dobie t. Coyote) empregou a vers ao c4 [Blumberg et al. 2002] explorando a t ecnica de aprendizagem Clicker Training. Esta e utilizada em c aes e cavalos, utilizando o som click qual o comportamento que o animal deve aprender. Gra cas ` a mem oria do sistema, e poss vel manter expectativas relativamente ao mundo exterior, o que permite ajudar o agente a manter uma ideia coerente de si pr oprio; por em tamb em d a espa co ` a ocorr encia de surpresas e de erros leg timos, o que aumenta bastante a credibilidade da personagem [Burke et al. 2001] (p. 17). O n vel de abstrac c ao adoptado para estruturar os m odulos da arquitectura e elevado. Contrastando com a abordagem escolhida no jogo Black & White (2.1.2) e no projecto Edge of Intention (2.1.3). 12

Cap tulo 2. Estado da arte

2.2

Agentes rob oticos

Nesta sec c ao analisam-se alguns projectos de constru c ao de robots, orientados para uma interac c ao social espont anea com seres humanos, designadamente os projectos Keepon, Tofu, Leonardo e Nabaztag.

2.2.1

Keepon

O robot Keepon e um produto da companhia BeatBots, fundada por Marek Michalowski e por Hideki Kozima. Surgiu de um projecto que procurava abordar o desao da intera c ao natural entre robots e humanos atrav es do ritmo e de uma apar encia minimalista. Toda a interac c ao deste robot e n ao-verbal e direccionada a crian cas. Nas palavras dos autores, Keepon e um robot social desenhado para interagir com crian cas de forma n ao verbal [Kozima et al. 2009] (p. 1). Keepon utiliza dois tipos de movimentos para se exprimir: os relacionados com o seu foco de aten c ao e os relativos a ` transmiss ao de emo c oes (ver gura 2.6). Como princ pio de design para a interac c ao com o utilizador, foi adoptado o minimalismo, sendo a express ao corporal o canal utilizado para a comunica c ao. O robot tem um aspecto simples e ligeiramente antropom orco, com o objectivo de reduzir caracter sticas intimidat orias. As transi c oes entre posturas assemelham-se naturalmente ` as de um organismo vivo. Finalmente, os movimentos permitem exprimir n ao s o o foco da sua aten c ao, mas tamb em como e que o robot avalia o est a a focar [Kozima et al. 2009] (p. 7). Com o objectivo de integrar mais profundamente o robot no seu ambiente f sico e social, o Keepon tem a capacidade de reagir a comportamentos humanos subtis e n ao-verbais utilizando-os como deixas. Foi-lhe dada a capacidade de gerar padr oes de movimento

(a) Infanoide.

(b) Keepon.

Figura 2.6: Imagens dos robots Keepon e Infanoide. 13

Cap tulo 2. Estado da arte

r tmicos e tamb em de detectar padr oes r tmicos de movimento e de som. A hip otese te orica de que esta capacidade aumentaria a qualidade da interac c ao foi conrmada experimentalmente, atrav es da interac c ao do robot com crian cas com menos de um ano e at e aos cinco anos de idade [Kozima et al. 2009] (p. 17). Os autores admitem que a sensibilidade aos padr oes de som e de movimento constitua um pr e-requisito t ao importante para que as interac c oes sociais sejam naturais e confort aveis entre humanos e robots, como o s ao ente humanos [Michalowski et al. 2007](p. 96). Este robot teve um efeito imprevisto: um v deo que demonstrava a sua capacidade de dan car ritmicamente ao som de uma m usica tornou-se viralmente popular na internet. O Keepon tornou-se popular enquanto personagem e n ao apenas como um robot, o que sugere que os princ pios de design aplicados s ao v alidos para estabelecer uma interac c ao tanto com crian cas como com adultos [Kozima et al. 2009] (p. 15). Desta forma, o objectivo de estabelecer uma forma de comunica c ao social natural e intuitiva foi completamente atingido. Os meios utilizados s ao surpreendentes, j a que n ao existe qualquer tipo de express ao facial, ou som, emitido pelo robot, mas apenas a express ao de notar que foi utilizado o princ corporal. E pio de encolher e esticar, um dos referidos na tabela 2.4. Hideki Kozima tinha j a constru do Infanoide (ver gura 2.6a) mas as crian cas tinham diculdades em o apreender como um todo, focando-se nas partes em movimento. Esta experi encia pr evia foi utilizada para encontrar solu c oes que permitissem integrar os movimentos do projecto seguinte (o Keepon) de forma a que este fosse percepcionado como uma estrutura u nica.

2.2.2

TOFU

O projecto TOFU debru ca-se sobre a constru c ao de uma plataforma rob otica que aberta a novas abordagens ` a aprendizagem com base em robots. Com enfase na express ao art stica e na narra c ao de hist orias. Mais concretamente, produziu robots que se movem e exprimem levando em considera c ao os doze princ pios da anima c ao. Destes, e implementado o princ pio de esticar e

Figura 2.7: A apar encia de Tofu. 14

Cap tulo 2. Estado da arte

encolher, que inclui tamb em o de um movimento secund ario: quer atrav es da utiliza c ao de penas no robot, quer atrav es do movimento dos olhos. A gura 2.7 mostra o aspecto de Tofu. Dentro das considera c oes est eticas, os autores tiveram o cuidado de n ao adicionar ao robot elementos visuais que aumentassem as expectativas do utilizador relativamente ao que o robot consegue realmente fazer. Por esta raz ao, n ao lhe foram colocadas asas ou pernas. O projecto atinge os objectivos propostos, mas o robot e unicamente uma marioneta que recebe comandos de um computador, fornecidos pelo utilizador atrav es de um joystick [Wistort & Breazeal 2009]. Sublinhe-se que este trabalho usa tamb em como refer encia o artigo de Bates [1994], analisado no contexto da arquitectura Tok. A sua inu encia revela-se claramente nos cuidados tidos com a est etica do robot.

2.2.3

Leonardo

Leonardo e um projecto do MIT Media Lab, Personal Robots Group. Utiliza a arquitectura c5M que e uma adapta c ao para um robot da arquitectura c4, j a mencionada na sec c ao 2.1.4. Este j a serviu de plataforma a v arios estudos na area da rob otica pessoal, que foram aumentando a sua complexidade e as suas funcionalidades. Destas, interessam especialmente a utiliza c ao de deixas sociais naturais na interac c ao com pessoas, a integra c ao de express ao facial e corporal, e a incorpora c ao de aprendizagem, tanto independente como guiada. Foram investigadas e encontradas v arias deixas naturais do comportamento humano durante o acto de ensinar, tanto com signicado positivo como negativo. Estas deixas s ao utilizadas no processo de Aprendizagem por Refor co como recompensas ou penaliza c oes, como por exemplo, aproximar ou afastar um objecto de interesse, observar as ac c oes do robot sem se movimentar, ou fazer festas. [Berlin 2008] (p. 51).

Figura 2.8: O robot Leonardo cumprimentando a c amara. 15

Cap tulo 2. Estado da arte

Quando est a a aprender com a ajuda de um tutor, o Leonardo usa as suas capacidades de reconhecimento e de express ao de emo c oes. Segundo Thomaz & Breazeal [2007], este robot utiliza a express ao facial e corporal para informar de forma din amica e intuitiva em que estado, do algoritmo de aprendizagem, se encontra. As express oes de Leonardo foram concebidas em fun c ao de resultados de pesquisa na area de Psicologia [Russell et al. 1997] (p. 4). Leonardo possui tr es comportamentos para a aprendizagem: o de criar novas tarefas com base em eventos inesperados (comportamento de descoberta); praticar tarefas em que tem pouca conan ca (comportamento de mestria); explorar o ambiente para aprender novas ac c oes (comportamento explorat orio). O resultado e um robot bastante aut onomo que consegue aprender de variadas formas e adequar o seu comportamento ao contexto social em que se encontra inserido.

2.2.4

Nabaztag

A companhia Violet desenvolveu o Nabaztag, um robot pessoal que age em fun c ao da informa c ao recebida da internet. Este pequeno robot, com a forma estilizada de um coelho, recebe informa c ao do mundo exterior unicamente atrav es de um microfone, de um bot ao e de um adaptador 802.11b Wi-Fi. Atrav es da internet, liga-se a um servidor dedicado que lhe transmite o programa relativo ` a ac c ao a executar. As suas interac c oes concretizam-se atrav es da emiss ao de som, luzes coloridas e do movimento das orelhas. O objectivo e conseguir canalizar a riqueza de informa c ao e comunica c ao da internet para o dia-a-dia, atrav es de um meio mais interessante e intuitivo. Embora seja rico nesse dom nio, o m aximo que cont em em termos de personalidade e uma aplica c ao que introduz surpreendente como, mesmo sem manter a informa algumas frases aleat orias. E c ao sobre

Figura 2.9: O robot Nabaztag com algumas das suas luzes ligadas. 16

Cap tulo 2. Estado da arte

o estado do mundo ou uma consist encia emocional, estas frases transmitem a ilus ao de personalidade [DuBois 2006]. Existe um Application Programming Interface (API) e projectos independentes [Lhermitte & Lacrab` ere 2009] que suportam o desenvolvimento de aplica c oes para o Nabaztag. Isto poderia sugerir a sua utiliza c ao como plataforma rob otica, mas a depend encia de um servidor externo e o grande tempo de lat encia [Violet 2009b] s ao desvantagens demasiado importantes para este projecto.

2.3

Compara c ao dos casos de estudo

Da compara c ao dos casos de estudo apresentados pretendem-se inferir directrizes a seguir durante o desenvolvimento do projecto. A compara c ao e as conclus oes dela extra das t em algumas limita c oes na medida em que a quantidade de documenta c ao e exemplos de actividades para cada caso e vari avel. Outra quest ao que e necess ario manter em mente e a natureza das caracter sticas analisadas, em particular as capacidades do agente e a ilus ao de vida que transmite. Acerca da primeira caracter stica, e preciso assinalar que cada projecto tem em vista objectivos diferentes, pelo que qualquer classica c ao feita n ao reecte a qualidade do trabalho analisado mas sim em que medida atinge os objectivos deste projecto. No que respeita ` a segunda caracter stica deve-se mencionar que se trata de uma quest ao muito subjectiva, sendo inclusivamente referido por um autor envolvido no projecto Oz que O sucesso de um agente cred vel e avaliado pela percep c ao da audi encia. e que (...) avalia c oes de pesquisa independentes da audi encia n ao fazem sentido [Mateas 1999] (p. 9). Dada a impossibilidade de conduzir um estudo estatisticamente correcto que evidencie a percep c ao da audi encia para cada caso apresentado, os dados descritos reectem uma opini ao pessoal. Contudo foram levadas em conta as avalia c oes externas poss veis: no caso de produtos comerciais, a extens ao da comunidade associada; no caso de Keepon, a percep c ao das crian cas que entraram em contacto com o robot. Assim, real cam-se os seguintes aspectos: O comportamento exibido pelos agentes em Creatures exibe alguma articialidade na falta de prioridades quanto ao que e urgente aprender. Outro comportamento que apesar de ser realista diminui a empatia com o robot e a sua indiferen ca em rela c ao aos humanos, uma vez que o agente nem sempre obedece e reconhece o utilizador, levando a que este perca o interesse no agente [Evans 2002] (p. 578). Depois de analisar a implementa c ao, o desequil brio da inu encia da micro-escala (os fen omenos biol ogicos) em detrimento da da 17

Cap tulo 2. Estado da arte

macro-escala (os comportamentos, os conceitos, as emo c oes) aparenta contribuir fortemente para a articialidade. Em Black & White, o utilizador e explicitamente mais importante que qualquer elemento do mundo simulado, com o objectivo de criar empatia. A implementa c ao deste sistema e fortemente inuenciada pela macro-escala, aliando a identica c ao do desejo que motivou a ac c ao a uma diversicada representa c ao das facetas dos conceitos. O agente resultante possui uma grande coer encia de comportamento. A arquitectura Tok foca-se fortemente no desenvolvimento emocional do agente, resul necess tando num comportamento extremamente coerente. E ario contudo ressalvar que a validade da compara c ao e limitada, dado que um agente constru do com a arquitectura Tok n ao aprende novos comportamentos, mas apenas aplica os que j a conhece sem haver planeamento expl cito. O caso da fam lia de arquitecturas desenvolvidas no MIT fornece uma compara c ao muito particular: a vers ao c4 foi desenvolvida tendo como contexto um mundo simulado, e aplicada ao agente Dobie; a vers ao c5M resulta da adapta c ao de c4 a um robot (o Leonardo) que se encontra num ambiente controlado. O agente Dobie T. Coyote tem como objectivo aproximar-se do comportamento de um c ao no contexto de aprendizagem. O comportamento do agente e bastante consistente e cred vel, perdendo apenas a credibilidade no atraso temporal entre a ordem e a ac c ao do agente e na articula c ao r gida das ac c oes. Por outro lado, o robot Leonardo apresenta as mesmas caracter sticas, mas diminuindo um pouco a expressividade. Os meios de que Leonardo disp oe para a aprendizagem s ao mais que os de Dobie, mas apresenta menor credibilidade enquanto ser vivo, o que leva ` a conclus ao de que as capacidades de aprendizagem n ao inuenciam exclusivamente este aspecto. Passando aos casos de agentes rob oticos sem uma arquitectura cognitiva expl cita, vejamos Keepon, Tofu e Nabaztag. Keepon apenas dan ca autonomamente e move a cabe ca dirigindo o olhar. Contudo, a sua credibilidade permite-lhe ser um instrumento de desenvolvimento para crian cas com autismo; crian cas com um desenvolvimento normal chegam inclusivamente a v e-lo como um agente social [Kozima et al. 2009]. Um exemplo ainda mais extremo de depend encia da manipula c ao e Tofu, que e exclusivamente dirigido por um operador [Wistort & Breazeal 2009]. Por em a an alise deste robot continua a ser relevante, dado o seu sucesso em criar um agente com alta credibilidade enquanto ser vivo [Wistort 2009]. Nabaztag surge como um robot utilit ario de aplica c ao comercial, completamente aut onomo. Este agente tem v arias limita c oes: e inuenciado de forma muito limitada pelo utilizador; n ao possui sistema 18

Cap tulo 2. Estado da arte

cognitivo; as suas emo c oes s ao geradas aleatoriamente sem existir uma coer encia na sua sucess ao. Apesar destas limita c oes, o n vel de credibilidade e de empatia que suscita e semelhante ao de Leonardo. Para a compara c ao dos v arios casos do ponto de vista das capacidades dos agentes foi constru da a tabela 2.5. Nesta tabela a presen ca da funcionalidade e representada por um 1 e a sua aus encia por um 0; no item da aprendizagem foram classicados com 0,5 os sistemas com Aprendizagem por Refor co ou variantes e o 1 assinala que o agente tamb em pode aprender autonomamente; o modelo do mundo indica a capacidade de modelar o que rodeia o agente; a autonomia requer que o agente consiga executar as suas tarefas sem interfer encia humana; o centro emocional indica a exist encia de emo c oes. Os valores atribu dos reectem a an alise descrita neste cap tulo. Seguindo os pontos de vista aplicados em Edge of Intention (sec c ao 2.1.3), na tabela 2.7 e identicada a presen ca ou aus encia de caracter sticas relevantes do cinema de anima c ao na interac c ao do agente com o utilizador. Foram inclu dos os tr es princ pios identicados por Bates [1994] bem como os seis relevantes dos doze princ pios da anima c ao descritas na tabela 2.4. No caso de Tofu, uma vez que e manualmente controlado, serviu de refer encia um exemplo de utiliza c ao [Wistort 2009] para analisar as potencialidades da sua expressividade. Os valores s ao resultantes da soma das caracter sticas, depois de transformados proporcionalmente para uma escala de zero a quatro. Sobressai o facto de nem a tabela 2.5 nem a 2.7 espelharem completamente a credibilidade dos agentes (tabela 2.6). Contudo, nos casos em que h a uma classica c ao mais d spar, uma tabela compensa a outra. Os casos mais extremos s ao Keepon, Tofu e Creatures. Quando existe uma disparidade entre a soma das caracter sticas cognitivas e a da credibilidade, o valor correspondente na tabela das caracter sticas do cinema de anima c ao compensa a disparidade. Por exemplo, o robot Leonardo obt em o valor 2.5 na soma da tabelas dos crit erios de credibilidade (tabela 2.6) mas na das capacidades cognitivas obt em 4, um valor muito superior; ao observar a tabela com as caracter sticas do cinema de anima c ao (2.7) o valor obtido e 2, um valor inferior ao da credibilidade. O inverso tamb em se verica, por exemplo em Keepon, a soma das caracter sticas cognitivas n ao e muito elevada, sendo a diferen ca de 1 para 3; contudo, relativamente ` as caracter sticas da anima c ao o valor j a e 4. Esta rela c ao leva a crer que uma area pode compensar a outra e vice-versa. Para a constru c ao da arquitectura deste projecto e importante ter em vista quais as fun c oes do robot, com o objectivo de identicar qual a complexidade dos mecanismos de decis ao e de modela c ao do mundo u teis ao agente; a an alise mostra que a constru c ao de grandes capacidades intelectuais n ao melhora directamente a credibilidade do agente, e tamb em 19

Cap tulo 2. Estado da arte

se tornou claro que e igualmente importante dot a-lo de meios de express ao apropriados. Para que as capacidades cognitivas do robot contribuam plenamente para a sua credibilidade enquanto personagem, e indispens avel incluir no robot uma expressividade igualmente desenvolvida. Tabela 2.5: Funcionalidades relativas ` a capacidade cognitiva.

Apredizagem Modelo do mundo Autonomia Centro emocional Soma

Edge of Intention 0 0 1 1 2

Creatures 0.5 1 1 0 2.5

Black & White 0.5 1 1 1 3.5

c4 (Dobie) 0.5 1 0 1 2.5

Leonardo (c5M) 1 1 1 1 4

Nabaztag 0 0 1 0 1

Keepon 0 0 1 0 1

Tofu 0 0 1 1 2

Tabela 2.6: Crit erios para a credibilidade indicados pelo projecto Oz.

Reactividade Objectivos Emo c oes Compet encias Sociais Soma

Edge of Intention 1 0 1 1 3

Creatures 0.5 0 0.5 1 2

Black & White 1 1 1 1 4

c4 (Dobie) 0.5 0.5 1 1 3

Leonardo (c5M) 0.5 0.5 1 0.5 2.5

Nabaztag 0.5 0.5 0.5 0.5 2

Keepon 1 1 0 1 3

Tofu 1 1 1 1 4

20

Tabela 2.7: Enumera c ao das caracter sticas analisadas e a sua presen ca (x) ou aus encia (-) em cada caso de estudo.

Edge of Intention X X X X ? ? X X X Estiliza c ao 3.2 Realismo 0.4 X X X X Realismo 2.4 X X Estiliza ca o 2 X X Realismo 1.6 X X X X X X X

Creatures

Black & White

c4 (Dobie)

Leonardo (c5M)

Nabaztag X X X X Estiliza ca o 2

Keepon X X X X X X Estiliza ca o 2.8

Tofu X X X X X X X X X Estiliza ca o 4

21

3 princ pios da anima c ao Identica ca o do estado emocional Inu encia do estado emocional Contexto c enico 6 t ecnicas de anima c ao Esticar e encolher Acelera ca o e desacelera ca o Arcos de movimento Exagero nos movimentos Ac ca o secund aria Antecipa ca o Estiliza c ao vs Realismo Soma

Cap tulo 2. Estado da arte

Cap tulo 2. Estado da arte

Relativamente a este u ltimo aspecto, e importante notar a diminui c ao da import ancia da express ao facial nos v arios agentes analisados: em Keepon est a totalmente ausente; Tofu consegue apenas mover os olhos e Nabaztag limita-se a acender uma luz redonda no local da boca. Mesmo assim a expressividade e considerada muito boa. A partir destes resultados e poss vel concluir que a presen ca num robot dos mesmos elementos expressivos da face humana n ao e necessariamente uma vantagem, vericando-se que, no caso de Keepon, a sua aus encia e mesmo uma das suas for cas [Kozima et al. 2009]. Inclusivamente, existem estudos na area da Psicologia que demonstram que a boca, inesperadamente, n ao e necess aria ` a interpreta c ao das emo c oes transmitidas [Russell et al. 1997].

2.4

Plataformas rob oticas

Na escolha do hardware foram analisados diversos par ametros tendo em vista a selec c ao das solu c oes mais vantajosas e acess veis. Os par ametros seleccionados foram: a comunidade gerada ` a volta do produto, a qualidade de componentes, o custo, o processamento e a exist encia de protocolo de comunica c ao. As plataformas que sobressa ram durante a pesquisa s ao as que passo a descrever. Em todos os casos existe uma forte comunidade a rodear a plataforma e o protocolo de comunica c ao j a est a implementado.

Mindstorm Este produto da Lego e constituido por um processador embutido num tijolo Lego e diversos perif ericos que com ele comunicam. Constitui um plataforma intuitiva, que n ao exige um conhecimento aprofundado nem de mec anica nem de electr onica e que existe j a no Departamento de Engenharia Inform atica da Universidade de Coimbra (DEI). A n vel da qualidade dos componentes existe uma disparidade entre sensores e actuadores. Estes u ltimos t em uma sensibilidade inferior ` a necess aria, o que constitui uma limita c ao. Contudo, e poss vel adaptar os motores para serem utilizados em conjunto com outras plataformas.

Basic Stamps e Propeller A Parallax produz v arias plataformas rob oticas com diferentes orienta c oes, das quais se destacam Basic Stamps e Propeller. Estas plataformas t em graus de complexidade muito 22

Cap tulo 2. Estado da arte

diferentes. Situam-se em extremos opostos da gama produzida pela Parallax sendo o Propeller o mais complexo. Enquanto o Basic Stamps possui um processador demasiado limitado, o Propeller tem uma enorme capacidade de processamento uma vez que possui oito processadores. Os produtos da Parallax t em duas limita c oes: s ao pensados para a integra c ao com componentes tamb em da companhia e tanto os processadores como os componentes s ao caros. Esta u ltima quest ao traz desvantagens uma vez que a linguagem e de mais alto n vel e portanto menos apropriada para a rob otica. Por outras palavras, tem menos capacidades de optimiza c ao do c odigo e de controlo directo dos componentes.

Arduino

Esta plataforma supera algumas das limita c oes dos produtos anteriormente descritos: tem um custo baixo, existe no DEI e opera com componentes gen ericos. Embora a sua linguagem nativa n ao seja o C/C++ e nela baseada, o que permite um controle mais directo dos componentes. As duas u ltimas caracter sticas t em a desvantagem de fazer abrandar a velocidade de prototipagem, uma vez que exigem um controle mais directo da programa c ao sobre a electr onica. Esta plataforma possui um melhor processador que o Basic Stamp mas uma menor capacidade de processamento que o Propeller. Levando em conta as suas vantagens e desvantagens, o Arduino e a plataforma escolhida para o desenvolvimento do robot. As suas limita c oes de processamento podem ser ultrapassadas utilizando v arias unidades. Na tabela 2.8 encontram-se sintetizados os v arios aspectos descritos na an alise de plataformas rob oticas.

Tabela 2.8: Compara c ao das caracter sticas analisadas nas v arias plataformas rob oticas.

Pre co Basic Stamps Propeller Ardu no Lego elevado elevado baixo Muito elevado

Comunidade Extensa Extensa Extensa Extensa

Componentes Gen ericos N ao suporta N ao suporta Suporta N ao suporta

Qualidade dos Componentes Alta Alta Vari avel Baixa para sensores Alta para motores

Capacidade de Processamento Baixa Elevada M edia Elevada

23

Cap tulo 2. Estado da arte

2.5

Emo c ao na gera c ao de voz

Tradicionalmente a gera c ao de voz tem como prop osito aproximar a linguagem do robot do discurso de uma pessoa adulta, com ou sem emo c ao. No ambito deste trabalho, este objectivo est a mais pr oximo da comunica c ao de um cartoon : o signicado limita-se ` a emo c ao contida nos sons e n ao na sem antica da palavra. Existe uma patente [Kobayashi et al. 2008] j a aplicada por um dos seus inventores [Pierre-Yves 2003] quer a robots quer a agentes simulados. O seu trabalho e feito tendo em vista a aplica c ao a robots, pelo que o algoritmo descrito na patente (algoritmo 2) e simplicado ao m aximo atrav es da minimiza c ao do n umero de caracter sticas manipuladas (dez) e da escolha de um sintetizador que concatena os sons (MBROLA [Pagel & Dutoit 1996]) para minimizar o custo computacional. As dez caracter sticas mencionadas s ao a acentua c ao da u ltima palavra da frase; a frequ encia fundamental (tom) m edia de cada fonema, sua varia c ao e m aximo; a dura c ao m edia de cada fonema e sua varia c ao; o volume; o contorno b asico da frase e o da u ltima palavra. A sua combina c ao permite diferenciar entre cinco estados emocionais: calma, raiva, tristeza, conforto e alegria. Os valores adoptados para cada estado encontram-se descritos na tabela 4.2 da sec c ao 4.2. Algoritmo 2 Algoritmo para a gera c ao de frases. Escolher n umero de palavras. for all palavras do Escolher n umero de s labas Decidir se a palavra e acentuada if palavraAcentuada then Escolhe s laba acentuada Ajusta dura c ao e pitch end if for all s labas do Escolhe tipo de s laba Escolhe as letras de acordo com o tipo Gera a dura c ao e pitch de cada letra end for end for if u ltima palavra then Ajusta dura c ao e pitch end if

24

Cap tulo 3

Conceito do projecto
Com base no estudo realisado no cap tulo anterior foi desenvolvido o conceito aqui descrito. S ao indicadas as directrizes extra das do estado da arte e promenorizadas as espec ca c oes, os comportamentos e os meios de interac c ao incorporados.

3.1

Contributo da compara c ao dos casos de estudo

De forma algo inesperada, a compara c ao dos v arios projectos forneceu ind cios consistentes de que as capacidades de aprendizagem de um robot n ao representam a caracter stica mais importante para criar ilus ao de vida. Esta conclus ao conduziu a uma altera c ao da ideia que se tinha a priori sobre a import ancia desta caracter stica. Desta forma, optou-se pela abordagem do projecto na optica da rob otica comportamental, com uma modela c ao moderada em fun c ao das inu encias do ambiente onde o robot est a inserido. Constatou-se tamb em que, quando e necess aria uma extensa modela c ao do mundo, naturalmente os mesmos factos podem ser visto de diferentes perspectivas. Representar os diferentes aspectos dos conceitos atrav es de estruturas de dados diferentes traz exibilidade. Esta abordagem vai ser aplicada ` a transmiss ao de informa c ao dentro do pr oprio programa: vai ser favorecida a cria c ao de estruturas de dados ` a medida de cada fun c ao em vez de for car a reutiliza c ao da mesma estrutura ao longo de todo o programa. Do confronto entre a quantidade de capacidades cognitivas de cada agente e a sua credibilidade conclu -se tamb em que estas s ao importantes mas n ao exclusivamente determinantes da ilus ao de vida criada pelo agente. Ao incluir no estudo a presen ca ou aus encia dos princ pios de anima c ao, surge a hip otese de que estes t em uma inu encia igualmente importante para a credibilidade conseguida pelo agente. Por esta raz ao, a expressividade do robot vai levar em conta os princ pios da anima c ao. 25

Cap tulo 3. Conceito do projecto

Para que se crie empatia entre o utilizador e o agente, este deve ` a partida gostar do utilizador (nas diferentes arquitecturas gostar corresponde a mecanismos diferentes) e obedecer-lhe sempre. Neste caso em particular, gostar traduz-se em reactividade, pelo que o robot ir a sempre reagir ao utilizador mesmo que a reac c ao que ocorra transmita um sentimento menos positivo (medo ou raiva). Foi levado a cabo um inqu erito junto de oito crian cas entre os 3 e os 5 anos de idade para avaliar quais os meios a utilizar na expressividade: som, luzes coloridas e movimento foram claramente favorecidos relativamente a qualquer outro. Para a escolha do objecto a animar foram comparados v arios tipos de secret arias. Uma vez identicados os objectos mais frequentes foi selecionado o copo para o l apis por apresentar mais potencialidades de interac c ao. O conjunto destas op c oes encontra-se sintetizado na gura 4.1.

3.2

Anatomia do robot

Nesta sec c ao descrevem-se todos os componentes f sicos do robot, desde desde os elementos mec anicos aos electr onicos.

3.2.1

Estrutura

Mecanicamente, o robot e constitu do por uma estrutura de tubos de lat ao, varetas, copos de pl astico e pe cas de policloreto de vinilo (PVC) cortadas ` a medida. Nesta sec c ao explicase a fun c ao de cada componente. A forma de os articular encontra-se descrita no ap endice B.

Pe cas em PVC Existem oito pe cas em PVC a que foram atribu das letras para simplicar a descri c ao, seguindo o esquema da gura 3.1. O modelo de cada pe ca com as dimens oes exactas est a ilustrado nas guras B.4 e B.5 do ap endice B. Come cando do topo, as pe cas A permitem xar rmemente cada copo de pl astico ao suporte. As pe cas B e E, juntamente com os quatro var oes roscados (dois ` a frente e dois atr as) formam uma estrutura que protege boa parte dos componentes el ectricos e mec anicos do robot. A pe ca E possui uma fun c ao adicional: e o suporte onde se xam todas as placas electr onicas do robot. A pe ca B serve tamb em de suporte aos tubos mais largos dos eixos e aos diodos emissores de luz ou light emitting diodes (LEDs). As duas pe cas D constituem 26

Cap tulo 3. Conceito do projecto

os locais de encaixe dos dois motores laterais e apoiam a pe ca B. J a a pe ca C serve para dar estabilidade aos eixos e ` as pe cas D. Finalmente a pe ca F cont em o local de encaixe e suporte ao bot ao que liga e desliga a energia dos motores.

Eixos em lat ao Os dois eixos de lat ao, representados na gura com cor amarela, t em a importante fun c ao de dar estabilidade ao movimento vertical dos copos. Cada eixo e composto por dois tubos de lat ao que deslizam um dentro do outro. No esquema da gura 3.1 apenas se pode ver o tubo mais no de cada eixo, situando-se os mais largos por tr as das pe cas D. A cada instante, e a frac c ao do eixo com dois tubos que d a estabilidade ao copo.

Extens oes do bra co do motor As extens oes aos bra cos de cada um dos motores laterais permitem transformar o movimento circular dos motores, num movimento vertical. Este mecanismo permite obter o efeito de encolher e esticar, um dos 12 princ pios da anima c ao indicado no estado da arte (cap tulo 2). O bra co do motor est a ligado a uma vareta, atrav es de dois pushrod s, que e xa num outro bra co da mesma maneira. Neste bra co existe um terceiro pushrod que liga a uma importante referir que a porca que xa este pushrod n segunda vareta. E ao est a totalmente apertada, permitindo que o pushrod possa rodar dentro do furo do bra co, alterando o angulo entre as duas varetas. A segunda vareta est a ligada ao copo de pl astico inferior atrav es de um ball link que permite que a vareta se movimente em rela c ao ao copo. Os esquemas da gura B.2 do ap endice B s ao mais expl citos nestes detalhes. O da gura 3.1 mostra a localiza c ao dos bra cos na estrutura.

3.2.2

Actuadores

O robot possui quatro formas de actuar sobre o ambiente que o rodeia: esticar e encolher o corpo usando os motores laterais; rodar a cara que apresenta ao utilizador; acender e apagar LEDs de quatro cores diferentes; e emitir som. 27

Cap tulo 3. Conceito do projecto

M.R

P.A

S.M M.V

P.B P.D P.C P.F P.E Legenda


Varo roscado P.A - Pea A P.D - Pea D P.C - Pea C P.E - Pea E P.F - Pea F 2 plano

Brao

Eixo

Copo

LEDs

P.F - Pea F M.R - Motor de rotao M.V - Motor de movimento vertical ou motor lateral S.M - Microfone

Figura 3.1: Esquema da estrutura do robot com sensores e actuadores.

28

Cap tulo 3. Conceito do projecto

Figura 3.2: As v arias express oes do robot.

Motores laterais Estes motores (M.V na gura 3.1) em conjuga c ao com as extens oes dos bra cos mencionadas na subsec c ao 3.2.1, produzem o efeito de encolher e esticar o corpo, sem alterar o volume, subindo e descendo os copos.

Motor de rota c ao O motor de rota c ao permite ao robot mudar a express ao dos olhos. Uma vez que existem tr es express oes diferente colocadas no copo superior, ao rodar o copo a express ao do robot altera-se. As tr es diferentes express oes faciais encontram-se na gura 3.2.

LEDs O robot possui oito LEDs, quatro de cada lado dos copos: dois vermelhos, um branco e um azul. Os LEDs contribuem para demonstrar os estados emocionais do robot: a luz azul evoca tristeza e a vermelha raiva. Misturando as cores obt em-se tamb em rosa e violeta.

Altifalante Por u ltimo, e poss vel comunicar atrav es de som. O altifalante (na gura 3.1, S.M) transmite n ao s o as mensagens que recebe atrav es da internet como tamb em sons que complementam a sua expressividade.

3.2.3

Sensores

Para recolher informa c ao sobre o ambiente que o rodeia, o robot serve-se de duas ferramentas: uma liga c ao ` a internet e um microfone. Apenas o microfone pode ser representado na gura 3.1. 29

Cap tulo 3. Conceito do projecto

Microfone Atrav es do microfone, o robot consegue ter um percep c ao da actividade que o rodeia. Os sons de amplitudes m edia ou elevada s ao o est mulo utilizado.

Internet O robot utiliza uma liga c ao ` a internet (se estiver dispon vel) para saber se foram enviadas mensagens de voz ao seu utilizador.

3.3

Interac c ao e comportamentos

S ao v arios os comportamentos e formas de interac c ao do robot. Partindo dos sensores e actuadores incorporados, o robot interage com o meio em que est a inserido, tanto atrav es de reac c oes explicitamente programadas como de comportamentos emergentes

3.3.1

Som

O som pode desencadear v arias reac c oes conforme as caracter sticas do est mulo. A descri c ao seguinte organiza-se por tipo de est mulo.

Interac c ao com pessoas Para simular esta interactividade, o corpo do robot eleva-se/estica, ou desce/encolhe e liga ou desliga LEDs, de forma a reproduzir v arios estados de esp rito. As ac c oes humanas que desencadeiam estas respostas s ao n ao s o a conversa c ao humana, como tamb em bater o p e no ch ao, produzir um ritmo sobre a mesa, ou bater palmas.

Sons de amplitude elevada Sons de elevada amplitude fazem com que o corpo se encolha ao m aximo, acenda a luz azul e coloque a express ao de triste para transmitir a ideia de estar assustado.

M usica O robot, ao reagir a sons de amplitude m edia e alta de uma m usica, aparenta dan car. Os est mulos que o activam e a forma como ele se exprime e a indicada anteriormente mas a 30

Cap tulo 3. Conceito do projecto

sua cad encia cria esta ilus ao. Outro fen omeno interessante e a ilus ao de gostos musicais. Esta emerge da rela c ao que existe entre um som que despoleta movimento e o momento na m usica em que ele ocorre, bem como a quantidade de vezes que ocorre. De forma compreens vel, um conjunto de trabalhos musicais que se mostrou particularmente ecaz para criar esta ilus ao, foram as obras da banda Queen. Com efeito, o seu ritmo e a diversidade de sons de voz e instrumentais, fornece grande quantidade de est mulos ao robot. Esta constata c ao sugeriu o nome de Freddy para este agente. Os comportamentos relacionados com a m usica emergiram devido ` a reac c ao programada para sons com amplitude m edia e alta.

3.3.2

Mensagens de voz

O robot serve de interface f sico para o servi co de mensagens instant aneas. Utilizando a internet para saber quando algu em est a a tentar entrar em contacto, o robot recebe mensagens de som que depois reproduz. A expressividade utilizada leva em conta a natureza da mensagem indicada no nome do cheiro, ou seja, se e uma mensagem boa, m a ou neutra. E tamb em utilizado um som para delimitar o in cio e o nal da mensagem.

3.3.3

Auto-preserva c ao

Na constru c ao do robot foi necess ario ter em conta a preserva c ao funcional da sua estrutura f sica, nomeadamente a dos componentes mais sens veis.

Motores laterais O elemento mais delicado da anatomia s ao os motores laterais. Como o movimento gerado tem a direc c ao oposta ` a da gravidade e muitas vezes e brusco h a uma grande tend encia para se partirem. Para preservar os motores quando Freddy est a inactivo em per odos prolongados, estes colocam-se lentamente numa posi c ao em que n ao fazem esfor co.

LEDs Os LEDs s ao outro componente protegido. Durante per odos de inactividade tamb em s ao desligados como forma de diminuir o desgaste. Contudo, uma vez que os LEDs est ao expostos a um desgaste menor, este aspecto e menos cr tico

31

Cap tulo 3. Conceito do projecto

32

Cap tulo 4

Concretiza c ao
Ap os a descri c ao do conceito, neste cap tulo descreve-se a forma como ele foi concretizado, utilizando a ordem cronol ogica como o condutor. A necessidade de o fazer desta forma e consequ encia do car acter explorat orio do trabalho efectuado. As duas primeiras sec c oes s ao desenvolvidas no primeiro semestre. Por ser uma fase com uma grande componente te orica, foram realizadas tarefas de natureza muito diferente: estudo dos casos analisado no estado da arte e elabora c ao de directrizes a seguir no desenvolvimento do projecto; implementa c ao de um algoritmo de s ntese de voz com entoa c ao emocional; desenvolvimento do conceito do robot. No segundo semestre ocorre a constru c ao do prot otipo. Progressivamente os desaos s ao ultrapassados, s ao feitos contactos, exploradas novas areas de saber at e chegar ` a vers ao nal.

4.1

Desenvolvimento do conceito

O objectivo inicial do projecto consistiu em construir um robot com o corpo de peluche, para ter uma boa resist encia ` a manipula c ao directa por crian cas. Os seus modos de express ao inclu am som e anima c ao dos olhos com luz. Para uma an alise preliminar deste objectivo, foi feito um levantamento dos requisitos no Jardim de Inf ancia do Carqueijo (distrito de Aveiro), junto de oito crian cas com idades compreendidas entre os quatro e os cinco anos. Este levantamento consistiu em pedir ` as crian cas que desenhassem o seu brinquedo preferido, acrescentando-lhe uma caracter stica que o tornasse mais interessante. As caracter sticas indicadas pelas crian cas tornaram claro, desde logo, uma falha num 33

Cap tulo 4. Concretiza c ao

dos aspectos estabelecidos na abordagem do projecto. A aus encia de motores para aumentar a resist encia iria resultar num objecto com pouco interesse j a que o movimento era o requisito interessante notar que o mais pedido. Contudo outro foi igualmente pedido: o som. E n umero de crian cas que gostariam que o brinquedo falasse foi muito reduzido. Geralmente o requisito resumia-se a cantar ou fazer barulho. Tendo em considera c ao estes resultados, houve uma redeni c ao de objectivos; optandose por animar um objecto comum, presente numa secret aria. Para escolher qual o objecto potencialmente mais interessante, procedeu-se ao levantamento dos elementos mais frequentes em diversos tipos de secret arias. Foram analisadas fotograas de vinte e seis secret arias utilizadas para diferentes ambientes de trabalho; a frequ encia da presen ca de cada um dos objectos inventariados encontra-se sintetizada na tabela 4.1. Tabela 4.1: Enumera c ao dos objectos encontrados em 26 secret arias e sua respectiva frequ encia.

Objecto candeeiro copo para p or l apis colunas de som computador xo port atil peluche estojo tapete para o rato caneca com agua aa l apis porta telem ovel comando TV/DVD/VCR rel ogio ou despertador

Frequ encia 20 18 16 15 14 10 9 8 6 5 4 3 1

Para cada um dos tr es objectos mais usuais foi feito um estudo de potenciais fun c oes e formas de express ao. Desta an alise resultou que o mais adequado seria o copo para l apis, uma vez que seria poss vel conjugar movimentos e som (gura 4.1) sem prejudicar a sua fun c ao. O mesmo n ao se vericou no caso do candeeiro, j a que ao movimentar-se deslocaria necessariamente a area iluminada. Tamb em na anima c ao das colunas acontecia um problema an alogo: ao usar a capacidade de gerar som iria potencialmente interferir com os sons gerados pelo computador a que estivesse ligado. A gura 4.1 ilustra o potencial expressivo do copo para l apis levando em conta os resultados dos inqu eritos ` as crian cas. No ponto 1, a forma cil ndrica do copo de l apis e aproveitada alterar a express ao do agente: tr es express oes distintas encontram-se desenhadas espa cadamente, o copo e rodado conforme o centro emocional. A outra forma de 34

Cap tulo 4. Concretiza c ao

movimento permite a aplica c ao do princ pio de encolher e esticar (ponto 2 da gura 4.1). O corpo n ao e r gido pelo que a forma altera-se sem alterar o volume. Adicionalmente e poss vel instalar uma forma de emitir som, facto que na gura 4.1 e indicado pelo n umero 3.

Legenda 1 - Rodar a cabe ca entre tr es posi c oes, cada uma com uma express ao diferente (a, b e c) 2 - Movimento de esticar e encolher 3 - Emiss ao de som Figura 4.1: Potencial expressivo do copo para l apis.

35

Cap tulo 4. Concretiza c ao

4.2

Gera c ao de emo c ao na voz

Foi conclu da uma implementa c ao preliminar do algoritmo de gera c ao de voz descrito anteriormente (sec c ao 2.5). O algoritmo implementado est a descrito em pseudo-c odigo no algoritmo 3. Neste algoritmo est ao presentes vari aveis que cont em os valores das caracter sticas manipuladas, tal como descrito na patente [Kobayashi et al. 2008]. Para cada estado emocional, cada caracter stica tem um valor denido. Os valores utilizados tanto nesta implementa c ao como na patente est ao explicitados na tabela 4.2. Tabela 4.2: Tabela com os valores utilizados para para manipular as caracter sticas do som [Pierre-Yves 2003].
Ultima Palavra Acentuada Tom M edio Varia c ao do Tom Tom M aximo Dura ca o M edia Varia c ao da Dura ca o Probablilidade de acentua c ao Contorno por deni ca o Contorno da u ltima palavra Volume Nome da vari avel ultimaPalavraAcentuada tomMedio varTom maxTom durMedia durVar probAcent contorno contornoUltima Calma NIL 280 10 370 200 100 0.4 Rising Rising 1 Raiva NIL 450 100 100 150 20 0.4 Falling Falling 2 Tristeza NIL 270 30 250 300 100 0 Falling Falling 1 Comforto TRUE 300 50 350 300 150 0.2 Rising Rising 2 Alegria TRUE 400 100 600 170 50 0.3 Rising Rising 2

O sintetizador utilizado para a gera c ao de som foi o software MBROLA [Pagel & Dutoit 1996], o mesmo indicado por Pierre-Yves [2003] e livremente dispon vel na internet. Os fonemas utilizados s ao os da l ngua americana, usando voz feminina. Os sons gerados pelo c odigo implementado permitem distinguir qual o estado emocional transmitido. Nem todos os estados emocionais s ao igualmente bem sucedidos: a mensagem e clara quando se pretende transmitir alegria ou f uria, contudo para conforto o som e mais amb guo.

36

Cap tulo 4. Concretiza c ao

Algoritmo 3 Algoritmo implementado para a gera c ao de som.


n umero de palavras = (gRand()%(MAXWORDS-1))+1; for all palavra do n umero de s labas = (gRand()%(MAXSYLL-2))+2; for all s labas do if gRand() 100 < 80 then tipo da s laba = CV; // CV = consoante+vogal else tipo da s laba = CCV; // CCV = consoante+consoante+vogal end if for all consoantes do escolherConsonant() dura ca o = durMedia + c; pitch = (tomMedio + gRand()%varTom) - varTom; end for for all vogais do escolherV ogal() dura ca o = durMedia + c; pitch = (tomMedio + gRand()%varTom) + varTom; end for {// Acentua ca o} if gRand()%100 < probAcent then escolherS labaAcentuar() for all letras da s laba acentuada do aumenta a dura ca o em durVar if contorno == RISING then pitch consoantes = maxTom - varTom; pitch vogais = maxTom + varTom; else if contorno == FALLING then pitch consoantes = maxTom + varTom; pitch vogais = maxTom - varTom; end if end for end if end for end for {Para a ultima palavra} if ultimaPalavraAcentuada then adiciona durVar a ` dura ca o de todas as letras else int e = varTom/2; if contornoUltima == FALLING then for all letras do l = 0; t = pitch da letra - (l+1)*e; if t > 0 then subtrai (l+1)*e ao pitch da letra; e +=(e/2); end if l++; end for else if contornoUltima == RISING then for all letras do l = 0; somar ao pitch de cada letra (l+s+1)*e e +=e; l++; end for end if end if

37

Cap tulo 4. Concretiza c ao

4.3

Evolu c ao do prot otipo

Para mostrar como o prot otipo do robot evoluiu ao longo do tempo foi constru da uma sequ encia fotogr aca com as v arias vers oes. Esta sequ encia come ca na gura 4.2a e termina na 4.3l.

(a) Vers ao 1

(b) Vers ao 2

(c) Vers ao 3

Figura 4.2: Vers oes um a tr es do prot otipo.

38

Cap tulo 4. Concretiza c ao

(a) Vers ao 4

(b) Vers ao 5

(c) Vers ao 6

(d) Vers ao 7

(e) Vers ao 8

(f) Vers ao 9

(g) Vers ao 10

(h) Vers ao 11

(i) Vers ao 12

(j) Vers ao 13

(k) Vers ao 14

(l) Vers ao 15

Figura 4.3: Vers oes quatro a quinze do prot otipo.

39

Cap tulo 4. Concretiza c ao

4.4

Narrativa da evolu c ao do robot

` medida que O robot foi desenvolvido atrav es de um processo explorat orio incremental. A cada quest ao ou problema era ultrapassado surgia uma nova vers ao do prot otipo, este era submetido ` a cr tica e avalia c ao de elementos exteriores ao projecto. A decis ao de utilizar este m etodo foi assumida a exemplo do desenvolvimento do projecto Black & White. Nesta abordagem, o sistema e submetido a este tipo de teste desde a fase de design. O que permite compreender cedo tanto a import ancia de cada funcionalidade [Barnes & Hutchens 2007] como qual a interac c ao mais intuitiva a privilegiar [Moggridge 2007]. Para evitar que a estrutura casse subordinada a apenas uma das funcionalidades pretendidas, foram estabelecidas metas interm edias para alternar o foco do desenvolvimento. Desta forma, evitou-se que a optimiza c ao excessiva de uma condicionasse a integra c ao das restantes. A descri c ao do processo e feita com o apoio visual da sec c ao anterior e dos ap endices A, B e C, descrevendo os desaos mais relevantes e a sua resolu c ao. No ap endice A encontra-se o processo utilizado para criar as placas electr onicas, no B e descrita a montagem da vers ao nal do prot otipo e nalmente no C cada placa e apresentada em maior detalhe. Um aspecto comum a todo o processo, foi a forma de manufacturar os cabos el ectricos. Foram reaproveitados cabos ethernet inutilizados que, depois de desmanchados, permitiram obter material suciente para uma instala c ao el ectrica com o c odigo de cores apropriado. Ap os serem descarnados, eram isolados com um de dois acabamentos (conforme a utiliza c ao): crimp housing ou manga t ermica. A descri c ao respectiva encontra-se no Ap endice B.

4.4.1

Encolher e esticar o corpo

A primeira quest ao a resolver foi estabelecer a estrutura mec anica necess aria para esticar e comprimir o corpo sem alterar o volume. Foi por aqui que se iniciou o processo uma vez que e o aspecto mais dif cil de concretizar da express ao corporal. A solu c ao encontrada foi associar espuma (ou um material com caracter sticas id enticas) a um mecanismo que gerasse um movimento vertical. O material (ao acompanhar o movimento vertical) sofreria deforma c oes criando o efeito de esticar e encolher. Esta conclus ao conduziu ` a necessidade de transformar a direc c ao do movimento rotativo do motor. Analisaram-se duas hip oteses: na primeira o efeito seria conseguido pela 40

Cap tulo 4. Concretiza c ao

deforma c ao de um bloco de espuma e na segunda mexendo apenas no revestimento. Para exercer for ca no bloco de espuma este teria uma superf cie r gida no topo e outra na base, elas estariam ligadas a um motor atrav es de um o ou cabo que seria enrolado e desenrolado. Na segunda hip otese, os movimentos verticais seriam obtidos atrav es de bra cos accionados por dois motores, sendo estes respons aveis por fazer subir ou descer a parte superior da estrutura. Depois de ponderadas as duas hip oteses, a primeira foi abandonada n ao s o devido a capacidade limitada de compress ` ao da espuma, como tamb em a ser incompat vel com o espa co vazio necess ario para o copo dos l apis na parte superior do dispositivo. Nesta fase iniciou-se o contacto com o clube de rob otica do Departamento de Engenharia Electrot ecnica da Universidade de Coimbra. Atrav es da troca de ideias, foram desenvolvidas as vers oes 1 a 3 do prot otipo (ver guras 4.2a, 4.2b e 4.2c). Por em, estas solu c oes n ao permitiram atingir o objectivo proposto. Em alternativa, procurou-se encontrar novas solu c oes noutra area em que se utilizam mecanismos de pequenas dimens oes, concretamente, o aeromodelismo. Com a colabora c ao de uma pessoa com experi encia na modalidade, foi criada a vers ao 4 do prot otipo (gura 4.3a). A extens ao do bra co do motor que se mostra na gura 4.4a e respons avel pela transforma c ao da direc c ao do movimento. A gura B.2 do ap endice B mostra com detalhe os componentes da extens ao. A estrutura de suporte do robot foi desao subsequente. Todas as modica c ao indicadas exigem formas e tamanhos muito espec cos ultrapassando a exibilidade dos Legos. Passou a ser necess ario utilizar um material que se pudesse transformar pelo que foi adoptado o PVC. At e esta fase a estabilidade da estrutura assentava apenas nas extens oes dos bra cos e nas tiras de espuma exteriores. A partir do momento em que se introduziram os motores isto tornou-se insuciente. Foi necess ario adicionar um eixo em lat ao constitu do por dois tubos que (durante os movimentos verticais) deslizam um dentro do outro. O eixo ocupava o centro da estrutura, mas esta desvantagem foi assumida para melhorar a estabilidade. Com estas duas quest oes ultrapassadas, chegou-se ` a vers ao 6 do prot otipo (gura 4.4b).

4.4.2

Mudar de express ao

A fase seguinte consistiu em incorporar a capacidade de mudar a express ao dos olhos. Para al em da ideia inicial de fazer girar o copo (com as tr es express oes de olhos nele colocadas) foram analisadas outras solu c oes, nomeadamente as que passavam pela utiliza c ao de mostradores de mostradores de cristais l quidos, em ingl es liquid crystal displays (LCD). Contudo tinham associados v arios inconvenientes: n ao se obtinha um aumento signicativo 41

Cap tulo 4. Concretiza c ao

(a) Estrutura para modicar o movimento do motor.

(b) Estrutura com um eixo para aumentar a estabilidade.

Figura 4.4: Solu c oes mec anicas para o movimento vertical.

de expressividade devido ao tamanho e ` as possibilidades limitadas; uma matriz de LCDs n ao possu nem resolu c ao suciente nem as liga c oes el ectricas apropriadas; os d odos org anicos emissores de luz, em ingl es organic light-emitting diodes (OLED) t em pre cos excessivos para o presente projecto. Al em destas desvantagens, as v arias hip oteses n ao s o introduziam a presen ca visual indesejada de um componente electr onico como aumentavam o tempo de desenvolvimento sem trazer qualquer acr escimo ` a demonstra c ao do conceito. Em resultado desta an alise, optou-se por manter a ideia inicial, criando uma solu c ao gr aca para as diferentes express oes dos olhos e fazendo rodar o copo dos l apis. Desta forma chegou-se ` a solu c ao de utilizar dois copos solid arios, um dentro do outro: o copo interior est a ligado aos dois bra cos que lhe comunicam os movimentos verticais e tem xo na sua base (e no seu interior) o motor que imprime os movimentos de rota c ao ao copo neste u superior. E ltimo que se colocam os olhos com as express oes. Esta op c ao obrigou a rever a solu c ao do eixo vertical, que passou a ser duplo e o apoio da base do conjunto dos copos. As imagens 4.5b e 4.5a cont em os detalhes destes aspectos. Depois de instalado o motor de rota c ao, surgiu outra quest ao: os movimentos das express oes n ao podiam ser distribu dos por toda a periferia da borda do copo, uma vez que a rota c ao m axima do motor e de 180o . Assim, as express oes tiveram de ser concentradas em metade do per metro do copo. Outra limita c ao dos motores foi o seu torque. Os primeiros motores a ser montados tinham um torque de 0.8Kg, o que e insuciente dado a direc c ao do movimento. Portanto foram substitu dos por outros com 2.3Kg de torque. Esta evolu c ao do projecto conduziu ` a constru c ao da vers ao 7 do prot otipo (gura 4.3d). 42

Cap tulo 4. Concretiza c ao

(a) Os dois copos, um dentro do outro.

(b) Prot otipo com dois tubos at e a ` base do copo.

Figura 4.5: Dois detalhes da solu c ao mec anica para integrar a rota c ao das caras.

4.4.3

Processamento de sinal: som

A recep c ao de som foi o meio escolhido para detectar v arios eventos na proximidade do robot: a presen ca ou aus encia de pessoas; barulhos muito fortes; barulhos de intensidade m edia. O sensor escolhido para detectar esta informa c ao foi o microfone. A primeira abordagem para o tratamento do sinal sonoro recebido consistiu em registar os valores extremos de uma amostra. Subtraindo o valor mais baixo ao mais alto obtinha-se uma determinada amplitude, informa c ao que servia de base para inferir o evento que ela traduzia. Para testar o resultado desta abordagem foi criado um interface gr aco onde se visualizava o desempenho do algoritmo - este programa est a descrito na sec c ao 5.4. Uma vez testada a viabilidade b asica do sensor, o seu desenvolvimento foi retomado apenas numa fase bastante mais avan cada do prot otipo.

4.4.4

Qualidade do movimento vertical

Apesar de nesta altura o robot j a possuir a capacidade de comprimir e esticar o corpo, tornou-se necess ario melhorar as caracter sticas dos seus movimentos: encontrar a velocidade adequada e a amplitude de movimentos expressiva. Quanto ao primeiro aspecto, a velocidade foi reduzida por um lado atrav es do controlo da amplitude dos movimentos pedidos e, por outro, dos intervalos de tempo entre as ordens enviadas aos motores. Quanto ao aspecto mec anico, a qualidade dos movimentos foi melhorada garantindo a lubrica c ao dos tubos do eixo vertical. O aspecto mais complexo foi a cria c ao de movimentos verticais com expressividade, uma vez que se tornou necess ario criar padr oes de comportamento que desencadeassem ades ao, por parte dos utilizadores. Para este efeito foi criado um interface gr aco para explorar a 43

Cap tulo 4. Concretiza c ao

expressividade corporal do robot, este software est a descrito na sec c ao 5.5. Paralelamente, tratando-se de uma an alise na area comportamental (etol ogica), esta fase incluiu testes informais com pessoas exteriores ao projecto que indicaram que os movimentos melhor aceites pelo utilizador eram amplos e simples. Por outras palavras, constatou-se que as pessoas reagiam mais favoravelmente a movimentos de maior amplitude separados por pausas, do que a sucess oes complicadas de movimentos. O desenvolvimento desta plataforma de testes foi o primeiro momento em que foi necess ario coordenar o integrated development environment (IDE) de Java, o Arduino, o Processing bem como todas as bibliotecas subjacentes. A transmiss ao de dados entre estes componentes constituiu um desao, exigindo uma congura c ao muito cuidada, bem com a utiliza c ao de algumas ferramentas adicionais (o Proclipsing no caso da integra c ao do Processing no IDE).

4.4.5

Sensor de peso

Um dado importante para o robot ter consci encia do seu pr oprio corpo seria informa c ao sobre a quantidade de l apis que cont em ou quando e alterada. Assim, o sensor escolhido para fornecer esta informa c ao foi um sensor de peso. Para fazer a an alise respectiva foi necess ario recorrer a colabora c ao especializada na area da engenharia electrot ecnica e, mais concretamente, no campo da prototipagem. Foram analisados dois tipos de sensores de peso: um force sensing resistor (FSR) e uma c elula de carga. Em ambos os casos se deparou com a mesma diculdade: o peso de um l apis e demasiado pequeno para ser medido com exactid ao, mantendo a estabilidade do sinal. Para ultrapassar esta diculdade foi adicionado um peso extra para deslocar os valores a medir para a gama de valores a que o sensor e sens vel; os l apis foram substitu dos por canetas mais pesadas; contudo estes artif cios continuaram a ser insucientes. De seguida foi integrado um amplicador de sinal (INA122 Texas Instruments), como se mostra na gura 4.6a em que se pode ver o circuito nal numa breadboard. Utilizando a equa c ao C.2.1 foram calculados os v arios ganhos que guram na tabela C.1. Todos eles foram testados em conjuga c ao com uma c elula de carga. Contudo nenhum ganho resolveu o problema uma vez que o ganho de 2000 exigia um o conversor anal ogico digital de 12 bits para ter a sensibilidade adequada e o do Arduino (ATmega168) e de apenas 10 bits. O ganho que conseguiria superar esta limita c ao (5000) tornava o sinal demasiado inst avel. Ao substituir no circuito a c elula de carga por um FSR foi necess ario tamb em incluir 44

Cap tulo 4. Concretiza c ao

(a) Circuito para utilizar uma load cell e um amplicador de sinal.

(b) Circuito para utilizar um sensor FSR em conjuga ca o com uma ponte de Wheatstone e um amplicador de sinal.

Figura 4.6: Circuitos para o sensor de peso montados numa breadboard.

uma ponte de Wheatstone para respeitar o esquema C.2b uma vez que esta n ao se encontra inclu da no componente. A gura 4.6b mostra esta altera c ao. O problema da instabilidade e ultrapassado, uma vez que e um sensor orientado para cargas mais baixas. Quando foi instalado no robot vericou-se que o sinal deixa de ser linear relativamente ao peso mas sim vari avel em fun c ao da posi c ao dos motores. Devido a esta conjuntura foi necess ario abandonar o sensor de peso.

4.4.6

Alimenta c ao dos motores

At e` a vers ao sete do prot otipo, alimentar os motores utilizando uma fonte de alimenta c ao regul avel era o apropriado, uma vez que permitia ajustar a tens ao e a corrente. Contudo, devido a limita c oes de material, foi necess ario encontrar uma fonte de energia port avel e igualmente est avel. A primeira op c ao analisada foi uma bateria com 5 c elulas com um total de 6 volts e 1600 miliamperes, por em constatou-se que esta solu c ao tem duas grandes desvantagens. Por um lado implica que sejam adquiridas duas destas baterias, bem como o respectivo carregador. Por outro, o descarregamento progressivo da bateria introduz um factor de erro no sistema. A segunda op c ao foi um carregador de 9 volts em conjunto com um regulador de tens ao a 6 volts e dois condensadores electrol ticos. Contudo, a tens ao de 6 volts mostrou ser excessiva, causando a avaria dos motores. Mesmo assim, uma vez que esta fonte de energia garantia portabilidade e estabilidade foi adaptada ` as necessidades do motor reduzindo a tens ao para 5 volts atrav es de um regulador de tens ao LM7805. Este ajuste implicou a mudan ca para um transformador de 12 volts e 2 amperes, j a que 1 ampere n ao era suciente para alimentar todos os motores. Contudo, continuava a existir um ponto de estrangulamento na tens ao ao n vel do regulador de tens ao, pelo que cada motor passou a ter o seu, em conjuga c ao 45

Cap tulo 4. Concretiza c ao

com condensadores de 25 volts e 4700 miliamperes. A gura 4.7 mostra o circuito de cada motor montado na breadboard.

Figura 4.7: Circuito do regulador de tens ao LM7805 montado na breadboard.

4.4.7

Circuitos integrados

At e` a fase descrita, os circuitos electr onicos necess arios ao projecto estavam ainda em desenvolvimento, pelo que era suciente mont a-los numa breadboard. Por em, para conferir estabilidade ao prot otipo em fases posteriores, foram desenhados em placa de circuito impresso (PCI). Foram criadas cinco placas: duas para alimentar os motores (gura 4.8c), uma para o sensor de peso (gura 4.8d), uma para ligar o transformador aos motores directamente atrav es de um jack socket (gura 4.8a) e, nalmente, uma quinta para permitir o corte de energia dos motores atrav es de um interruptor (gura 4.8b). Estas placas foram manufacturadas com a orienta c ao de alguns estudantes de mestrado em Engenharia Electr onica seguindo o processo descrito no ap endice A. O material utilizado foi disponibilisado pelo clube de Rob otica do Departamento de Electrotecnia da Universidade de Coimbra. A gura 4.8 mostra o aspecto nal de cada placa. Da solu c ao de todas estas quest oes resultou a vers ao 8, gura 4.3e.

4.4.8

Expressividade

A expressividade dita a interac c ao com o utilizador e no caso deste projecto compreende v arios aspectos: o movimento corporal, o revestimento, o som, a ilumina c ao e a express ao dos olhos.

A apar encia A apar encia do robot desempenha um papel fundamental na interac c ao com o utilizador. 46

Cap tulo 4. Concretiza c ao

(a) Placa para ligar a ` corrente.

(b) Placa para cortar a energias dos motores corrente.

(c) Placa para alimentar os motores.

(d) Placa para o sensor de peso.

Figura 4.8: As v arias placas feitas para o robot e sua cablagem.

essencial minimizar a quantidade de componentes de hardware vis E veis. Tal como foi constatado pelo investigador Hideki Kozima, as engrenagens dicultam que robot seja visto como um todo (ver imagem 2.6). Simultaneamente, e necess ario encontrar um revestimento que permita utilizar as t ecnicas do cinema de anima c ao (analisadas na sec c ao 2.3) para aumentar a expressividade do robot. Nesta fase do projecto (vers ao oito) j a tinha sido encontrada a solu c ao para criar o efeito de esticar e encolher, atrav es de movimentos verticais transmitidos pelos bra cos dos motores com a utiliza c ao de tiras de espuma, presas na base do mecanismo e no bordo do copo exterior (solu c ao que se pode ver na vers ao quatro, gura 4.3a). O desao foi garantir que as tiras apenas dobravam para fora. Experimentou-se colocar abra cadeiras na face interna (n ao vis vel) de cada tira, como se pode ver na vers ao nove do prot otipo (gura 4.3f). Como o resultado n ao foi satisfat orio, alterou-se a forma das tiras de rectangualr para oval. Como mesmo assim n ao se obteve o resultado desejado, foi pedida a colabora c ao de uma nalista do mestrado em Design e Multim edia da Universidade de Coimbra para colaborar na cria c ao do revestimento. Isto levou a uma mudan ca na escolha de materiais e no design global da pe ca passando por seis fases diferentes desde a dez (gura 4.3g) at e` a vers ao nal (vers ao quinze, gura 4.3l). 47

Cap tulo 4. Concretiza c ao

Ilumina c ao Durante o desenvolvimento do projecto adicionou-se uma nova componente de expressividade, n ao projectada inicialmente, que consistiu na ilumina c ao do interior. Este efeito surgiu pela primeira vez na vers ao nove. Escolheram-se tr es cores diferentes conforme as emo c oes a transmitir: vermelho para zangado, azul para triste e branco para neutro. O desenvolvimento deste aspecto levou a que fosse redesenhada e substitu da a pe ca B. Para montar os LEDs de forma a que os circuitos n ao cassem vis veis foi integrada a pe ca B no circuito, ou seja, as pernas dos oito LEDs atravessam a pe ca B e uma placa perfurada. Esta placa teve que ser soldada em tr es fases: primeiro soldar as resist encias da forma normal; depois encaixar os LEDs e sold a-los na placa perfurada, mantendo a face n ao estanhada virada para a pe ca; por u ltimo foi necess ario soldar um header de quatro pinos mas invertido. A gura 4.9 mostra v arias perspectivas das duas placas feitas para os LEDs. Os LEDs foram posicionados de forma a que a sua luz fosse reectida pelo pl astico do copo, aumentando assim a difus ao das cores.

Figura 4.9: Placa feita para os LEDs.

Identidade sonora Para o desenvolvimento deste aspecto foram recolhidas opini oes de pessoas exteriores ao projecto. Estas evidenciaram que o trabalho de gera c ao de sons (realizado no primeiro semestre) n ao possu a a abilidade necess aria para transmitir emo c oes. A voz gerada nem sempre conseguia transmitir a emo c ao pretendida e, para al em disso, tinha um tom um pouco mec anico e distorcido. Aquele trabalho foi abandonado e, em alternativa, analisaramse v arias amostras de som. Nesta an alise foi tida em considera c ao quer a coer encia sonora entre si, quer com o aspecto visual do robot, o que conduziu ` a selec c ao de amostras apenas de animais de estima c ao/companhia, ou de m aquinas. A op c ao de o robot ler mensagens de texto tamb em foi analisada, mas foi abandonada devido ` a sua falta de expressividade. Com efeito, as suas caracter sticas de voz autom atica iria prejudicar o objectivo de fazer um robot que criasse a ilus ao de vida. 48

Cap tulo 4. Concretiza c ao

Express ao dos olhos Dois desaos surgiram nesta area: encontrar a express ao certa e encontrar a forma adequada de a integrar no robot. Assim, foi feita uma pesquisa quanto ` as express oes de olhos utilizadas na banda desenhada e no cinema de anima ca o, mostrando-se as solu c oes adoptadas na gura 3.2. Foi tamb em necess ario encontrar a solu c ao mais ecaz de as integrar no robot, tendo em conta que, apesar de os olhos deverem ser grandes e bem vis veis, cada uma das express oes tinha de estar sucientemente afastada das vizinhas, de forma a que cada uma delas fosse apreendida de forma isolada. Recorde-se que, pelo facto de o motor de rota c ao executar movimentos m aximos de 180o , apenas se dispunha de metade do per metro do copo para incorporar as tr es express oes. A solu c ao foi, por um lado, comprometer um pouco a expressividade diminuindo o tamanho das express oes e, por outro, encontrar um forma favor avel de as xar. Nas vers oes treze a quinze do prot otipo (guras 4.3j, 4.3k e 4.3l, respectivamente) mostra-se a pesquisa efectuada para obter o equil brio entre a dimens ao dos olhos e a sua coloca c ao.

Movimento corporal A express ao corporal do robot foi explorada inicialmente sob a perspectiva de sequ encias pr e-denidas de movimentos. Contudo, ao observar o resultado da conjuga c ao dos est mulos e das respostas, cou claro que tal abordagem levaria a um atraso entre o est mulo e a resposta bem como ` a dessincroniza c ao entre os v arios aspectos da expressividade. Tendo sido abandonado o objectivo de dotar o robot de comportamentos predenidos, optou-se pela abordagem da rob otica comportamental. Nesta perspectiva considera-se que cada pequeno est mulo desencadeia uma pequena reac c ao e que o comportamento emerge do seu conjunto. Para adoptar esta abordagem, foi necess ario ajustar a reactividade do robot, nomeadamente os limiares utilizados no processamento de sinal audio para identicar os est mulos. O projecto participou numa exposi c ao conjunta dos v arios projectos da resid encia no Espa co no Tempo, em Montemor-o-Novo (de 7 a 30 de Julho). Esta constituiu uma optima oportunidade para observar a reac c ao tanto de visitantes como participantes e melhorar os movimentos corporais do robot. Em s ntese, esta aprecia c ao demonstrou que o excesso de reactividade torna o agente desinteressante mas a sua aus encia tamb em. Neste dom nio e igualmente necess ario um equil brio. 49

Cap tulo 4. Concretiza c ao

4.4.9

Segunda fase de processamento de sinal

A abordagem para identicar a presen ca/aus encia de pessoas descrita em 4.4.3 foi abandonada uma vez que durante os testes revevelaram que outros eventos tamb em eram detectados. Uma abordagem alternativa seria utilizar a frequ encia do som mas esta op c ao envolveria esfor cos que saem do ambito do projecto. Ap os terem sido identicadas limita c oes no algoritmo de processamento de som ao n vel da identica c ao de est mulos, foi realizada uma pesquisa adicional a este respeito. O estudo foi feito durante a resid encia que antecedeu a exposi c ao no Espa co do Tempo, com o apoio e troca de conhecimento com outros participantes. A pesquisa desenvolvida renou o processamento de sinal audio, e reectiu-se na ferramenta de apoio ` a sua explora c ao (ver sec c ao 5.4). Foram analisadas as seguintes caracter sticas do sinal: a amplitude, o valor quadr atico m edio, o m aximo, a percentagem de energia do sinal (para identicar sons sob a perspectiva do envelope Attack Decay Sustain Release (ADSR)). Depois de identicar as caracter sticas de sons, como a voz e os ru dos causados por humanos ou m aquinas, constatou-se que a caracter stica com melhor rela c ao entre custo computacional e reactividade era a amplitude. Esta e extra da da amostra atrav es da equa c ao 4.4.1 em que t e o tamanho da amostra de som.
t i=1 intensidadei

amplitude =

(4.4.1)

Foi tamb em investigada a hip otese de integrar a detec c ao do ritmo da m usica. A biblioteca SoundTouch [Parviainen 2009] fornecia um m etodo para detectar o ritmo mas n ao gerava bons resultados. A JAudio [McEnnis 2008] revelou ser mais vocacionada para detec c ao de caracter sticas do sinal mas coorden a-los continuava a exigir um elevado investimento. A hip otese de implementar um algoritmo n ao foi posta de lado; contudo, os encontrados [Patin 2003] eram vocacionados para o caso de ser conhecido o tipo de m usica a analisar. Resumindo, a ilus ao de dan car manteve-se um comportamento emergente, consequ encia da forma como o robot est a programado para reagir a sons de m edia e elevada amplitude. Como este fen omeno aumenta consideravelmente a ilus ao de vida, foram investigados meios para o melhorar apenas para concluir que nenhuma outra solu c ao apresentava uma melhor rela c ao entre tempo de desenvolvimento e qualidade de resultados. O desenvolvimento de uma solu c ao mais robuste implicaria investiga c ao na area da an alise musical o que est a fora do ambito da tese.

50

Cap tulo 5

Implementa c ao
Neste cap tulo e descrito o software associado ao robot, ao contr ario do cap tulo anterior que se foca em quest oes associadas ao hardware. Foram desenvolvidos cinco programas no decorrer do projecto: tr es deles comp oem a vers ao nal da arquitectura e dois serviram de ferramenta para construir o robot. O robot depende de um programa para controlar o Arduino, de outro para gerir o robot e, opcionalmente, de um dedicado a gerar as mensagens de som. Os programas auxiliares surgiram da necessidade de facilitar a explora c ao da expressividade corporal e das propriedades do som. O controlador do Arduino foi desenvolvido na sua linguagem pr opria. Foi esta a escolhida uma vez que simultaneamente satisfazia os requisitos de eci encia (j a que e muito pr oxima de C) e acelerava o desenvolvimento fornecendo m etodos de abstrac c ao mais elevada para as opera c oes associadas ao Arduino. Todos os outros programas foram desenvolvidos em Java devido ` a necessidade de rapidez e` a possibilidade de correr em v arias plataformas. Esta op c ao foi poss vel uma vez que, como se trata de uma prova de conceito, as exig encias de performance foram aliviadas executando o controlador do robot num computador pessoal. As bibliotecas externas foram outro contributo para a agilidade do desenvolvimento. A do Processing n ao s o foi um valioso contributo para o desenvolvimento dos interfaces gr acos como tamb em permitiu utilizar a Minim para o som e a Serial para a comunica c ao com o Arduino servindo de interface ` a biblioteca RxTx. Para monitorizar pastas, foi utilizada a biblioteca JPathWatcher. A gura 5.1 mostra como os tr es programas envolvidos no funcionamento do robot se integram juntamente com os perif ericos necess arios. Est ao assinaladas as liga c oes em que e usado um protocolo adicional bem como que informa c ao e transmitida. A Dropbox

51

Cap tulo 5. Implementa c ao

e um servi co que garante o sincronismo de uma pasta online com c opias em diferentes computadores, tem como vantagem n ao restringir nem o tipo nem o n umero de servi cos potencialmente ligados ao robot. Por exemplo, para utilizar qualquer protocolo de Instant Messaging basta congurar a pasta do Dropbox como pasta de recep c ao de cheiros e activar a recep c ao autom atica. Este m etodo j a foi testado com sucesso com o protocolo Skype. Tamb em e de assinalar que o gerador de mensagens e opcional, a mensagem pode ser gravada com qualquer gravador de som desde que esteja em formato wav e que o nome do cheiro tenha o formato correcto (<nome> <natureza da mensagem> <n umero>) .

Gerador de Mensagens

Mensagem Dropbox

Controlador Geral

Ordem RxTx

Controlador do Arduino LEDs

Legenda
Microfone Motores Coluna

Figura 5.1: Arquitectura do software do robot.

Uma vez que as aplica c oes de controle do Arduino e do robot s ao as mais importantes para o conceito s ao as descritas em maior detalhe.

5.1

Controlador do Arduino

Este programa escrito em Arduino, uma linguagem id entica ao C, opera no microcontrolador ATmega32 sobre os tr es motores e oito LEDs do corpo do robot. O controlador do Arduino comunica com o controlador geral do robot atrav es de caracteres ASCII, comandos que est ao sintetizados na tabela 5.1. No caso dos motores, existe uma protec c ao contra ordenar angulos imposs veis, uma vez que antes de ser dada a ordem, o controlador verica se o angulo se encontra dentro da amplitude denida para o motor. A forma de manipular os LEDs azuis, vermelhos e brancos assume que os LEDs t em dois estados: ligado e desligado, pelo que a u nica opera c ao relevante a fazer sobre eles e alterar esse estado. 52

Cap tulo 5. Implementa c ao

Tabela 5.1: C odigo ASCII de cada comando do controlador do Arduino Comando H L A S N M<n umero> D<n umero> L<n umero> R<n umero> Ac c ao Ligar o LED integrado no Arduino. Desligar o LED integrado no Arduino. Mudar o estado dos quatro LEDs vermelhos. Mudar o estado dos dois LEDs azuis. Mudar o estado dos dois LEDs brancos. Posicionar ambos os motores do movimento vertical no angulo indicado. Posicionar o motor do lado direito no angulo indicado. Posicionar o motor do lado esquerdo no angulo indicado. Posicionar o motor de rota c ao no angulo indicado.

5.2

Controlador geral

Este programa coordena todos os componentes do robot. Para garantir a reactividade, e utilizada a t ecnica de multithreading. Para fazer uma descri c ao completa da aplica c ao ela e descrita sob v arias prespectivas. Primeiro e apresentado o comportamento do ponto de vista do utilizador, atrav es dos casos de uso. De seguida, e indicada a estrutura do c odigo com o apoio de um diagrama de classes. Por m, e abordado o comportamento interno do programa. Os nomes em ingl es t em paralelismo directo com o c odigo.

5.2.1

Casos de uso

O comportamento do robot do ponto de vista do utilizador pode ser denido utilizando tr es casos de estudo: reac c ao ao som, recep c ao de mensagens de voz e auto-preserva c ao. Cada um deles encontra-se representado na gura 5.2 e e explicado em mais detalhe de seguida.

Reagir ao som Quando o robot detecta um som relevante ele move o corpo e/ou acende e/ou apaga LEDs para o demonstrar. necess Pr e-requisitos E ario que seja emitido e captado um som de amplitude m edia ou alta. Cen ario 1. A fonte ou fontes de som emitem um ru do de amplitude m edia ou alta.

2. O ru do e captado pelo microfone de Freddy. 3. O robot processa esta informa c ao e dene como se expressar. 53

Cap tulo 5. Implementa c ao

Sistema
1..* 1

Controladores do Freddy Reagir ao som

Emissor de som

0..* 1

Autopreservao

0..*

1 1

Freddy
0..* 0..* 1

Receber Mensagem

Emissor de mensagem

Figura 5.2: Casos de uso do robot.

Receber mensagem Uma mensagem e recebida pelo Freddy pelo que ele a reproduz.

Pr e-requisitos Uma mensagem de som e enviada ao robot. Cen ario 1. O utilizador grava uma mensagem de som.

2. O utilizador envia a mensagem ao Freddy. 3. O robot recebe-a. 4. O robot reproduz a mensagem.

Auto-preserva c ao Alguns dos componentes do robot s ao muito suscept veis ao desgaste. Por esta raz ao, quando n ao est a a haver interac c ao h a algum tempo, o robot apaga os LEDs e vai lentamente para uma posi c ao em que n ao force os motores.

Pr e-requisitos N ao existir qualquer tipo de interac c ao durante dois segundos. Cen ario 1. N ao existe interac c ao durante dois segundos.

2. Os motores de movimento vertical aproximam-se um grau da posi c ao de descanso. 3. Repetem-se os passos 1 e 2 at e os motores atingiram a posi c ao de descanso altura em que todos os LEDs s ao desligados. 54

Cap tulo 5. Implementa c ao

MicThread SensorIn Queue ExpressYourself Queue Messages Queue

IMThread

PersonalityThread

VoiceThread

BodyThread

Figura 5.3: Meios de interac c ao entre threads.

5.2.2

Estrutura do c odigo

O programa possui cinco threads : a principal (Freddy ), a que lida com a internet (IMThread ), a que recebe o sinal do microfone (MicThread ), a que envia ordens para o Arduino (BodyThread ), a respons avel pela emiss ao de som (VoiceThread ) e a que gere toda a informa c ao (PersonalityThread ). Cada tipo de informa c ao e descrito numa estrutura de dados pr opria. A informa c ao enviada pelos sensores e encapsulada num objecto (SensorIn ) que pode conter uma mensagem (Message ) ou uma amostra do sinal do microfone (Sound ). Dois tipos de dados foram criados para exprimir ordens: o ExpressYourself e o Action. Em ExpressYourself a ordem e constru da sob a perspectiva da PersonalityThread transmitindo o pr oximo estado do corpo. Em Action s ao denidas as ordens a transmitir ao Arduino para que o corpo passe para esse estado. Por exemplo, se a PersonalityThread deniu que e necess ario acender os LEDs vermelhos mas eles j a est ao acesos em ExpressYourself a boolean red seria verdadeira, pelo contr ario em Action a boolean angry seria falsa. A gura 5.3 mostra as estruturas de dados utilizadas para comunicar entre threads de forma sincronizada, as ArrayBlockingQueue s. Estas estruturas disponibilizadas pela biblioteca nativa do Java java.util.concurrent s ao las de espera que ordenam os elementos de forma FIFO1 e preparadas para a concurr encia. Elas fornecem m etodos bloqueantes no caso de a la estiver vazia ou cheia evitando a espera activa. Existe apenas uma la para enviar a informa c ao dos sensores mas duas para enviar ordens aos actuadores. Este decis ao de arquitectura foi tomada para evitar que as threads se bloqueassem umas ` as outras. Como o consumidor de todas as mensagens e a PersonalityQueue, e natural que o ritmo de consumo seja ditado por ela. J a no caso das ordens h a dois consumidores distintos: a VoiceThread consome mensagens, a BodyThread altera c oes no estado do corpo. Ao criar uma la para cada hardware n ao s o e simplicado o processo de identica c ao do destinat ario como evita o cen ario de uma das threads ter dados na la mas n ao lhes puder aceder devido ao ritmo de consumo da outra thread. Este e um cen ario
1

do ingl es rst in, rst out.

55

Cap tulo 5. Implementa c ao

prov avel dado que o ritmo de gera c ao de ordens para cada thread n ao s o e diferente como inst avel. Esta estrutura torna-se mais simples de visualizar atrav es do diagrama de classes presente na gura D.1 do ap endice D. As classes est ao divididas em tr es packages : a Freddy que cont em a thread principal, a thread que agrupa as outras threads lan cadas e a objects com as estruturas de dados. Existe tamb em a package data que cont em cheiros auxiliares.

5.2.3

Comportamento da aplica c ao

O comportamento da aplica c ao e explicado segundo duas perspectivas: o funcionamento de cada thread e a concretiza c ao dos casos de uso. Os diagramas de actividade das guras 5.4a, 5.4b e 5.4c ilustram o uxo de informa c ao necess ario para concretizar cada caso de uso. As setas que ligam a u ltima ac c ao de uma thread ` a primeira simbolizam um comportamento c clico interno: no nal da tarefa a thread volta a car ` a escuta de um novo evento em vez de morrer. A comunica c ao aqui mencionada consiste na transfer encia de objectos atrav es de diferentes ArrayBlockingQueues. Existem duas restri c oes temporais: uma no tempo de processamento do sinal dos sensores e outra no espa co de tempo que decorre entre o est mulo exterior e a reac c ao vis vel do robot. Devido ` a primeira foi criada uma thread para processar cada sensor. Acerca da segunda restri c ao foram tomadas medidas relativas a dois aspectos. Por um lado, o tempo de execu c ao da ac c ao foi reduzido apostando na abordagem da Rob otica Comportamental. Desta forma os comportamentos mais complexos emergem dos est mulos sendo compostos por ac c oes curtas. Por outro lado, o processamento de sinal que ocorre na thread de cada sensor diminui o n umero de mensagens geradas, aumentando o intervalo de tempo entre recep c ao de mensagens por parte da thread de decis ao e consequentemente aumentando o tempo dispon vel para o processamento de cada mensagem. Os detalhes sobre a l ogica de cada uma das threads IM, Mic, Body e Voice s ao dados de seguida. A thread principal (Freddy ) serve apenas para inicializar as las de comunica c ao e as outras threads.

IMThread Esta thread e respons avel por monitorizar a pasta onde v ao surgir os cheiros com as mensagens de voz. 56

Cap tulo 5. Implementa c ao

Reagir ao som
Processamento de som seleco caso o som seja de amplitude mdia ou alta Comunicao da informao sobre som

MicThread

Recepco de amostra de som do microfone

PersonalityThread

Recepo da informao dos sensores

Deciso do prximo estado Comunicao das ordens Envio de ordens para o Arduino

BodyThread

Converso de ordens

(a) Interac ca o despoletada pelo som.


Receber de mensagens de voz

IMThread

Recepo de mensagem de som

Processamento da mensagem

Comunicao da recepo da mensagem

PersonalityThread

Recepo da informao dos sensores

Deciso do prximo estado Comunicao da mensagem

VoiceThread

Reproduo da mensagem

(b) Transmiss ao de mensagens de voz.


Auto-preservao
PersonalityThread

Ausncia de recepo de informao dos sensores

Deciso dos ajustes do estado no corpo Comunicao das ordens Envio de ordens para o Arduino

BodyThread

Converso de ordens

(c) Interac ca o que ocorre na aus encia de actividade.

Figura 5.4: Diagramas de actividade.

57

Cap tulo 5. Implementa c ao

utilizada a biblioteca externa jPathWatch para gerar um evento sempre que for criado E um cheiro na pasta monitorizada. Quando este evento ocorre, e analisado o nome e formato do novo cheiro: se o nome for do tipo (<nome> <natureza da mensagem> <n umero>) e o cheiro estiver no formato wav e reconhecido como uma mensagem de voz. Como tal e colocada na ArrayBlockingQueue uma inst ancia da classe Message contendo o nome do cheiro encapsulada numa SensorIn. Ap os noticar a PersonalityThread, a IMThread continua a monitorizar a pasta.

MicThread Esta thread retira amostras do sinal do microfone utilizando a biblioteca Minim e processaas procurando ocorr encia de caracter sticas relevantes. As caracter sticas denidas como relevantes s ao uma amplitude elevada e m edia. A amplitude e aproximada atrav es da equa ca o 4.4.1 e utilizada da forma descrita no algoritmo 4. Algoritmo 4 Classica c ao do som estadoAmplitudeElevada = 0.013 estadoAmplitudeM ediaM nimo = 0.004 estadoAmplitudeM ediaM aximo = 0.015 1024 intensidade amplitude = i=1 1024 if amplitude >amplitudeElevada then estadoAmplitudeElevada = true else if estadoAmplitudeM ediaM nimo <amplitude < estadoAmplitudeM ediaM aximo then estadoAmplitudeM edia = true end if end if Sempre que sons desta natureza s ao identicados e colocada na ArrayBlockingQueue uma inst ancia da classe Sound encapsulada numa SensorIn indicando se o som tinha amplitude m edia ou elevada. Ap os o envio, a thread retoma a escuta.

PersonalityThread Esta thread recebe a informa c ao dos sensores e transmite ordens aos actuadores. Ela centraliza todas as decis oes e coordena os v arios canais de comunica c ao. A arquitectura inspira-se no paradigma da arquitectura orientada aos servi cos, do ingl es service oriented architecture (SOA) aplicando princ pios u teis ao projecto. A PersonalityThread actua enquanto enterprise service bus (ESB) na medida em que e o intermedi ario entre 58

Cap tulo 5. Implementa c ao

todas as funcionalidades do sistema. Esta abordagem simplica a adi c ao de sensores e actuadores, o teste de qualquer congura c ao e aumenta a estabilidade do sistema ao estancar falhas. At e este momento, o projecto apenas necessita de ArrayblockingQueues para comunicar entre componentes mas para adicionar novas formas de comunica c ao esta eau nica thread a alterar. O algoritmo 5 descreve em pseudo-c odigo a l ogica utilizada para processar a informa c ao adoptada uma abordagem inspirada dos sensores e consequente tomada de decis oes. E na Rob otica Comportamental especialmente na reac c ao ao som, os comportamentos s ao parcialmente programados emergindo da sequ encia de est mulos. Uma vez que o mundo e uma fonte de acontecimentos vari avel e imprevis vel os comportamentos emergentes diferem sempre.

VoiceThread Esta thread est a encarregue do som emitido pelo robot. Ela ca bloqueada enquanto espera novas mensagens do tipo Message na ArrayBlockingQueue partilhada com a PersonalityThread. Quando chega uma nova mensagem escolhe um de treze sons, reproduzindo-o para sinalizar o in cio e o m da mensagem. Assim, o som ouvido e: primeiro o sinal de mensagem, depois a pr opria mensagem e de novo o sinal de mensagem. Mal termina a difus ao da mensagem, ca ` a espera da pr oxima. Os sons duram um segundo e consistem em pontos seleccionados dentro de uma grava c ao de uma mensagem em c odigo Morse com a dura c ao de sete segundos. Como s ao amostras retiradas do mesmo som, e garantida a consist encia sonora bem como evitado que o sinal de in cio e m de mensagens se torne repetitivo.

BodyThread Esta thread e respons avel por comunicar ao controlador do Arduino as ordens para alterar o estado do corpo. A comunica c ao e feita atrav es da porta USB utilizando a biblioteca Java RxTx atrav es da biblioteca Serial do Processing. Na tabela 5.1 est ao descritas todas as ordens e respectivos c odigos em ASCII. Da PersonalityThread s ao recebidas inst ancias da classe ExpressYourself, que depois s ao transformadas em Actions, e actualizada a representa c ao do estado actual do corpo, ap os o que s ao transmitidas as ordens ao controlador do Arduino. Depois de uma ExpressYourself 59

Cap tulo 5. Implementa c ao

Algoritmo 5 Processo de decis ao das reac c oes sensores : ArrayBlockingQueue < SensorIn > corpo : ArrayBlockingQueue < ExpressY ourself > voz : ArrayBlockingQueue < M essage > informa c ao dos sensores = sensores.poll(2 segundos) if n ao h a informa c ao dos sensores then ordem = new ExpressYourself(aproximar de posi c ao de descanso) corpo.put(ordem) else if informa c ao dos sensores.isSom() then if informa c ao dos sensores.isAmplitudeElevada() then {Assusta-se} ordem = newExpressY ourself ( posi c ao mais baixa, express ao triste, azul) ordem.absoluta = true corpo.put(ordem) else if informa c ao dos sensores.isAmplitudeM edia() then ordem = new ExpressYourself(Mexer o corpo e acender LEDs aleatoriamente) corpo.put(ordem) end if else if informa c ao dos sensores.isMensagem() then mensagem = informa c ao dos sensores.getMensagem() if mensagem.type ==boa then ordem = new ExpressYourself(altura m edia, express ao contente, branco, vermelho, azul) else if mensagem.type == IMThread.BAD then ordem = new ExpressYourself(altura m nima, express ao triste, azul) else if mensagem.type == IMThread.NEUTRAL then ordem = new ExpressYourself(altura m edia, express ao contente) end if ordem.absoluta = true corpo.put(ordem) {Corpo de acordo com a mensagem} voz.put(mensagem) {Som da mensagem} end if end if

60

Cap tulo 5. Implementa c ao

ter sido processada, a thread volta ` a escuta da ArrayBloquingQueue. O algoritmo 6 exprime em pseudo-c odigo a convers ao de ExpressYourself em Action. Esta clara diferencia c ao entre o formato das ordens utilizado na PersonalityThread e na BodyThread decorre da decis ao de adequar a estrutura de dados ` a perspectiva da informa c ao e n ao o inverso. A PersonalityThread t em a fun c ao de decidir a pr oxima ac c ao do robot e de a transmitir de forma clara, cabe ` a BodyThread executar a ordem em conformidade com o estado actual do corpo e as suas limita c oes. Uma ExpressYourself pode transmitir ordens de tr es formas: absoluta, relativa e de ajuste. A ordem absoluta transmite um estado para o qual o corpo deve transitar imediatamente como por exemplo que o motor deve estar no angulo x. A relativa indica altera c oes no estado do corpo como subir dez graus. A de ajuste refere-se ` a aproxima c ao da posi c ao de descanso. O algoritmo para a transforma c ao de cada tipo de ordem est a descrito em pseudo-c odigo no ap endice D, o algoritmo 8 refere-se ` as ordens absolutas, o 7 ` as relativas e o9` as de ajuste. Cabe ` a BodyThread confrontar estas indica c oes com o estado e limita c oes do corpo: os motores podem j a estar na posi c ao pretendida ou ser uma posi c ao imposs vel . A diferencia c ao de estruturas de dados observada no caso de estudo Black & White [Evans 2002], que aqui e aplicada, traz realmente mais exibilidade. Do lado da PersonalityThread a preocupa c ao e fazer o tipo de transforma c ao adequada, do lado de BodyThread as decis oes conceptuais s ao confrontadas com a realidade. Desta forma o pr oprio robot identica e corrige erros nas ordens preservando a sua integridade f sica e expressiva mantendo as directivas gerais de movimento. A rela c ao entre PersonalityThread e as outras threads enquanto centro de decis ao e a mesma mas apenas neste caso foi necess ario criar dois tipos de dados.

Algoritmo 6 Transforma c ao de ExpressYourself em Action ordem : ExpressY ourself c : Action if ordem.absoluta = true then c = ordem para passar do estado actual para o ordenado {A ordem representa o pr oximo estado do robot} else if ordem.ajustar then if o robot n ao est a na posi c ao de descanso then c = ordem para aproximar o robot da posi c ao de descanso end if else c = ordem para incorporar as altera co es {A ordem e relativa, representa altera c oes} end if

61

Cap tulo 5. Implementa c ao

5.3

Cliente para gerar mensagens

Esta aplica c ao feita em Java oferece uma hip otese de gravar mensagens para enviar ao robot garantindo que o cheiro e gerado de forma adequada. A gura 5.5 mostra o interface gr aco. Ap os os dados serem inseridos, a mensagem e gravada num cheiro pr e-denido da Dropbox e consequentemente transmitido para a pasta que o controlador do robot est aa observar.

Figura 5.5: Interface gr aco do cliente de gera c ao de mensagens de voz. O interface gr aco tem os seguintes passos de utiliza c ao: 1. Seleccionar a natureza da mensagem. 2. Inserir o nome do utilizador. 3. Gravar mensagem.

5.4

An alise das caracter sticas do som

Ao procurar a caracter stica do som mais adequada para utilizar como est mulo para o robot surgiu a necessidade de criar uma forma de visualiza c ao. A gura 5.6 mostra a solu c ao encontrada para observar simultaneamente v arias hip oteses: a amplitude, o m aximo da amostra, o raiz da m edia do quadrado dos valores, do ingl es root mean square (RMS) e a energia do sinal. O c alculo da amplitude e feito segundo a equa c ao 4.4.1. O RMS da amostra e calculado segundo 5.4.1 em que t e o tamanho da amostra, neste caso 1024. A energia do sinal e calculada segundo a equa c ao 5.4.2 em que RMS e o conjunto de valores anteriores de RMS e a janela a quantidade de valores anteriores de RMS. 62

Cap tulo 5. Implementa c ao

1 2

1. 2. 3. 4. 5.

Amostra do sinal do microfone Amplitude das ltimas 1024 amostras O mximo nas ltimas 1024 amostras RMS das ltimas 1024 amostras energia do sinal das ltimas 1024 amostras

Figura 5.6: Interface gr aco da ferramenta de explora c ao de som.

rms =

t 2 i (sinali )

t
janela RM Si i

(5.4.1)

energia =

janela maxrmsRM S

(5.4.2)

5.5

Desenvolvimento da expressividade

Como j a foi mencionado na sec c ao 4.4.4, durante o desenvolvimento do projecto surgiu a necessidade de uma ferramenta que auxiliasse a explora c ao da express ao corporal do robot. Em resposta a essa necessidade, foi criado um programa que permite fazer sequ encias de movimentos, armazenar as sequ encias de movimentos, ler sequ encias de cheiros, ver os detalhes de cada ac c ao, ver a evolu c ao da eleva c ao do copo durante a sequ encia atrav es de um gr aco e congurar cada ac c ao atrav es de um interface gr aco. A gura 5.7 mostra o interface gr aco indicando os passos da sequ encia de utiliza c ao que s ao explicados de seguida. 1. Existem duas formas de seleccionar ac c oes: (a) Uma a uma: i. Indicar grau de eleva c ao dos motores. ii. Estabelecer quais luzes est ao ligadas e a express ao a adoptar. 63

Cap tulo 5. Implementa c ao

1AI

3 1AII 1AIII
1BI

1BII

Figura 5.7: Interface gr aco do software de testes. iii. Denir pausa entre o envio de ordens. (b) Ler uma sequ encia de um cheiro: i. Introduzir o nome do cheiro. ii. Dar ordem de ler ac c oes. 2. Ap os serem introduzidas ac c oes surge a descri c ao de cada ac c ao em mem oria bem como um gr aco da eleva c ao do copo nos v arios momentos. 3. Apenas falta iniciar o movimento atrav es do bot ao Play.

64

Cap tulo 6

Gest ao do projecto
Neste cap tulo est ao concentrados os aspectos relativos ` a coordena c ao de tempo e recursos associados ao desenvolvimento descrito at e aqui.

6.1

Minimiza c ao de riscos

A natureza do projecto exigiu uma abordagem explorat oria a que e inerente uma elevada componente de risco. Para a minimizar, o processo de desenvolvimento foi documentado e o prot otipo testado desde a fase inicial de desenvolvimento.

6.1.1

Testes

A op c ao de utilizar os testes ao longo do desenvolvimento foi adoptada ` a semelhan ca do jogo Black & White. Os coordenadores do projecto alegam que permite avaliar tanto a import ancia de cada funcionalidade [Barnes & Hutchens 2007] como identicar a interac c ao mais intuitiva [Moggridge 2007]. Estes testes t em uma natureza informal uma vez que os componentes estavam vis veis, o que inuencia de forma determinante a expressividade [Kozima et al. 2009]. Contudo eles provaram ser importantes uma vez que levaram ` a adi c ao de cor atrav es de LEDs coloridos. O teste nal de conceito e funcionamento do robot foi uma exposi c ao que durou tr es semanas. Esta ocorreu em O Espa co do Tempo, um centro de artes transdisciplinares em Montemor-o-Novo, que consistiu na mostra de trabalho resultante de uma resid encia art stica que reuniu v arios membros da associa c ao Audi encia Zero, que junta tr es hacker spaces portugueses. Os visitantes da exposi c ao tiveram oportunidade de interagir com o robot, tanto atrav es do som como mandando mensagens de voz a partir de um computador 65

Cap tulo 6. Gest ao do projecto

pr oximo. Esta foi a forma mais espont anea de observar as reac c oes dos utilizadores. Apesar de n ao ter sido poss vel recolher as reac c oes de forma sistematizada, elas permitiram trabalhar a expressividade ajustando o n vel de reactividade e identicando os comportamentos mais expressivos. Para avaliar se o robot tinha atingido ou n ao os objectivos foi elaborado um question ario a ser preenchido na sequ encia de uma demonstra c ao formal. O question ario encontra-se no ap endice E e os resultados apresentam-se no cap tulo 8.

6.1.2

Documenta c ao da evolu c ao

A documenta c ao da evolu c ao do prot otipo serviu dois ns: em primeiro lugar para evitar a repeti c ao de erros, em segundo para registar o processo de manufactura. Os problemas encontrados durante o desenvolvimento bem como a solu c ao encontrada foram sistematizados num documento. Este permitiu n ao perder de vista a origem das op c oes feita durante a constru c ao. Ao longo do desenvolvimento, foi documentado o processo de manufactura de cada componente criada. Esta documenta c ao deu origem aos anexos A, B e C. No anexo A est ao descritos os passos utilizados para criar as placas de fabrico pr oprio. No anexo B est a sistematizada a forma de montar os componentes mec anicos e electr onicos do robot. No anexo C descreve-se cada uma das placas do ponto de vistas das considera c oes electr onicas.

6.2

Aquisi c ao de compet encias complementares

Tendo constatado que o projecto envolvia compet encias exteriores ` a minha forma c ao espec ca, foram contactadas pessoas de diferentes areas para as adquirir. Abaixo encontra-se a listagem das pessoas e entidades contactadas fora do curso de Engenharia Inform atica da Universidade de Coimbra, especicando qual foi o seu contributo no projecto.

Assistente de investiga c ao Ryan Wistort do grupo Personal Robots do Massachusetts Institute of Technologic para a troca de informa c ao relativamente aos robots Tofu e Tofu-mini. Coopera c ao com o Clube de Rob otica do Departamento de Engenharia Electrot ecnica e de Computadores, para disponibiliza c ao de meios e apoio t ecnico ao n vel de mec anica e electr onica. Henrique Melo, para aplicar a mec anica utilizada em aeromodelismo no movimento 66

Cap tulo 6. Gest ao do projecto

vertical do robot. Engenheiro Jos e Cortijo e consequente coopera c ao com a Corsisa Electr onica para orienta c ao durante a prototipagem. Iv ania Valente, nalista do curso de Design e Multimedia do Departamento de Engenharia Inform atica da Universidade de Coimbra que foi a respons avel por todo o design do robot. Associa c ao Audi encia Zero que possibilitou a resid encia de uma semana no Espa co do Tempo, que por sua vez viabilizou o interc ambio com pessoas de diversas areas de que resultou um importante contributo para o processamento de sinal.

6.3

Distribui c ao do tempo

Durante o primeiro semestre (Setembro a Janeiro) foi levado a cabo o estado da arte, a implementa c ao preliminar do algoritmo de gera c ao de voz com emo c ao e a extrac c ao de directrizes da an alise de casos de uso. No segundo semestre foi constru do o prot otipo, tendo cada m es correspondido a uma etapa diferente de desenvolvimento. O m es de Fevereiro foi utilizado para encontrar os meios log sticos adequados e para discutir solu c oes t ecnicas com pessoas experientes em cada area. No m es de Mar co foi trabalhada a estrutura mec anica a utilizar para conseguir as capacidades pretendidas para robot. No m es de Abril foi iniciado o desenvolvimento da parte electr onica e dos controladores de hardware. A parte mec anica continuou a ser desenvolvida para acomodar as novas funcionalidades. No m es de Maio come cou o desenvolvimento do design global do robot, que por sua vez levou a altera c oes quer na mec anica quer na electr onica. Foi tamb em iniciado o estudo da expressividade que levou ` a cria c ao do programa auxiliar descrito na sec c ao 5.5 e ao ajuste dos controladores de hardware. No m es de Junho conclu ram-se os trabalhos nas areas de Mec anica e de Electr onica, embora tenha continuado o desenvolvimento do design global. Na primeira metade deste m es continuou tamb em o estudo da expressividade atrav es do programa auxiliar, enquanto na segunda metade foi iniciado o controlador principal e o analisador de som descrito na sec c ao 5.4. Foi neste m es que decorreu a resid encia art stica em Montemor-o-Novo. 67

Cap tulo 6. Gest ao do projecto

No m es de Julho foi implementado o cliente para gerar mensagens e terminada a implementa c ao do controlador principal. O robot esteve em exposi c ao durante tr es semanas tamb em em Montemor-o-Novo. O m es de Agosto foi dedicado ` a escrita do relat orio e recolha de feedback atrav es de um question ario ap os a realiza c ao de demonstra c oes. Foram dedicadas entre 40 e 48 horas semanais durante a constru c ao do prot otipo.

6.4

Divulga c ao

Ao longo do segundo semestre, o projecto foi divulgado em diferentes espa cos. Foram gravadas em v deo v arias fases de desenvolvimento e colocadas online no YouTube. O primeiro documenta a primeira vers ao funcional do prot otipo [Faria 2010d]. O segundo, j a com revestimento, marca a introdu c ao das express oes concebidas em articula cao com o design do robot [Faria 2010e]. O terceiro mostra o comportamento emergente dan car, antes da inaugura c ao da exposi c ao [Faria 2010b]. Finalmente, o quarto documenta o processo de enviar uma mensagem de voz [Faria 2010c]. No contexto da resid encia, foi feito um post [ps 2010] em cada um dos blogs dos tr es hacker spaces envolvidos, descrevendo alguns dos projectos em desenvolvimento. A exposi c ao proporcionou dois meios de divulga c ao: um presencial, atrav es da mostra de trabalho que constituiu; outro virtual, na forma de um site [AZ 2010] com uma p agina para cada projecto. Por m existe uma p agina que apresenta o robot e reune os links para os locais virtuais acima mencionados [Faria 2010a].

68

Cap tulo 7

Discuss ao de resultados
Conforme foi mencionado anteriormente, o projecto Mindu no visa o desenvolvimento de um agente rob otico que desempenhe uma fun c ao simples, mas que execute as suas ac c oes com uma componente emotiva e de expressividade baseada nos princ pios do cinema de anima c ao. Tal como indicado na sec ca o 6.1.1, a concretiza c ao dos objectivos do robot foi testada inquirindo 22 pessoas atrav es de um question ario lan cado no seguimento de uma demonstra c ao de funcionamento. O inqu erito foi aplicado a todos os grupos de idades e as respostas acabaram por car concentradas na faixa et aria entre os 20 e os 40 anos. Foram avaliados os tr es aspectos seguintes: a expressividade (caracter sticas mais marcantes); a clareza das fun c oes (actividades observadas) e a percep c ao do robot (tipo de identidade associada). Foram tamb em recolhidas cr ticas e sugest oes de altera c ao. Os resultados apresentados de seguida t em como limita c ao o n umero modesto de respos tamb tas obtidas. E em necess aria prud encia ao olhar para as qualica c oes da expressividade do robot uma vez que alguns dos inquiridos partiram do princ pio de que deveriam seleccionar apenas uma op c ao. Isto dito, a caracter stica engra cado e claramente armada em quase tr es quartos das respostas. Em contrapartida n ao tem praticamente signicado a caracter stica assustador. A segunda caracter stica predominante foi a semelhan ca do robot com um desenho animado. Tamb em parece relevante que apenas uma pessoa tenha considerado o robot como incompreens vel. Dentro de outras hip oteses surgiram irrequieto, divertido, com personalidade e funcionalidade n ao clara. Nas op c oes apresentadas aos inquiridos encontram-se indicadores de sucesso (engra cado, como um desenho animado e parece estar vivo) e insucesso (assustador, r gido e n ao percebi nada). A selec c ao recaiu claramente sobre os de sucesso. Contudo, dentro dos tr es indicadores de sucesso, varia inversamente ` a proximidade do objectivo indicando que ainda h a um caminho a percorrer.

69

Cap tulo 7. Discuss ao de resultados

Tabela 7.1: Faixas et arias dos inquiridos. Faixa et aria 2 -14 15 - 20 21 - 40 41 - 60 >60 anos N umero de respostas 2 1 12 5 2

Tabela 7.2: Caracteriza c ao da expressividade. Caracter sticas Engra cado Como um desenho animado Muito estranho Parece estar vivo Outra hip otese R gido N ao percebi nada Assustador N umero de respostas 16 8 4 4 4 3 1 1

Dentro das actividades observadas (segundo aspecto) e interessante constatar que a quase totalidade das pessoas assinalou dan car, um comportamento que emerge da sucess ao de est mulos. Por outro lado, a esmagadora maioria identicou dois dos tr es comportamentos programados (receber uma mensagem e reagir a uma pessoa) enquanto que assustar-se se verica apenas em um ter co das respostas. Outras ac c oes identicadas foram estar contente e virar a cabe ca. Quanto ao u ltimo aspecto verica-se que, maioritariamente, o robot foi classicado como um companheiro rob otico. Os inquiridos que o qualicaram como copo estranho n ao foram os mesmos que o acharammuito estranho na pergunta relativa ` a expressividade. Por outro lado nenhum respondente achou necess ario encontrar uma classica c ao distinta das propostas pelo question ario. A categoria de m aquina apenas foi seleccionada uma vez. Isto indica que foi atingido o objectivo de transmitir a ideia de um agente para al em de um simples objecto inerte. Dos 22 inquiridos apenas 12 zeram sugest oes ou cr ticas. De entre as sugest oes apresentadas, as que mais se repetem (4/12) foram: a de diminuir o ru do dos motores e a seguida em igual de aumentar a variedade de comportamentos e formas de interac c ao. E n umero (3/12) pela da diminui c ao do volume e a de movimentos mais graciosos. As duas primeiras prendem-se com quest oes de mec anica; quanto ` au ltima, mostra a import ancia da 70

Cap tulo 7. Discuss ao de resultados

Tabela 7.3: Actividades identicadas. Ac c oes Dan car Receber uma mensagem Reagir a uma pessoa Assustar-se Outra hip otese Nenhuma das anteriores N umero de respostas 21 18 18 7 2 0

Tabela 7.4: Classica c ao do robot. Tipo Companheiro robot Um copo estranho Animal M aquina Outra hip otese N umero de respostas 15 4 2 1 0

movimenta c ao corporal na expressividade. Nas respostas ` a segunda pergunta, que trata a expressividade, a clara prefer encia de indicadores de sucesso (especialmente de engra cado e de como um desenho animado) indica que o prot otipo foi bem sucedido em quebrar com a vis ao cl assica de uma m aquina. Esta conclus ao e tamb em suportada pelas respostas ` a quarta pergunta, cujo objecto e o tipo de identidade do robot. Aqui resposta mais frequente (companheiro rob otico) leva a uma vis ao mais pr oxima de uma personagem e mais afastada de um aut omato. Contudo, a distribui c ao inversa dentro dos indicadores de sucesso e a prefer encia de companheiro rob otico no lugar de animal, indica que a sua capacidade de criar a ilus ao de vida tem ainda que ser trabalhada. Para identicar os aspectos a melhorar h a que analisar a distribui c ao da selec c ao dos indicadores de insucesso, o que foi indicado em outras hip oteses como negativo e as sugest oes dadas no nal do question ario. O indicador negativo com maior express ao e muito estranho, seguido de r gido. Dentro de outras hip oteses, surgiu irrequieto e funcionalidade n ao clara. Isto, juntamente com as sugest oes de aumentar a interactividade e de tornar os movimentos mais graciosos, leva a crer que existem dois eixos de evolu c ao. O primeiro prende-se com a clareza da comunica c ao: e necess ario que seja evidente quais os est mulos a que o robot e sens vel e como o afectam. Para atingir esta meta clareza do movimento e fundamental mas tamb em a utiliza c ao cuidade dos recursos expressivos. O segundo envolve a variedade, pra criar a ilus ao de via e necess ario emular a 71

Cap tulo 7. Discuss ao de resultados

polival encia e diversidade de ac c oes de um ser vivo. A falta de identica c ao do comportamento assustar-se deveu-se em grande medida ` a sua brevidade: quando surge um som de amplitude elevada surgem tamb em v arios de amplitude m edia n ao existindo tempo suciente para o observador identicar o comportamento. Este e um exemplo de um comportamento que precisa de ser tornado mais claro.

72

Cap tulo 8

Conclus oes
Este projecto tem como objectivo criar um robot resultante da anima c ao de um objecto de secret aria, com a capacidade de desempenhar a fun c ao de uma aplica c ao de uso comum. Paralelamente, as suas ac c oes e reac c oes devem criar a ilus ao de vida. O copo para l apis foi o objecto selecionado, j a que e o acess orio de secret aria mais frequente num levantamento feito entre 26 secret arias. A aplica c ao de uso comum implementada foi o servi co de mensagens de voz, uma vez que e a que melhor se adequa a uma interface rob otica. Durante o estado da arte, foram analisadas diferentes abordagens ` a cria c ao de um agente rob otico ou de software que crie a ilus ao de vida. Da compara c ao dos v arios casos de estudo, foram extra das directrizes para o desenvolvimento do prot otipo, revelando a import ancia dos princ pios da anima c ao para a expressividade. Os recursos expressivos inclu dos no corpo do robot foram seleccionados com base num levantamento de prefer encias junto de crian cas entre os quatro e os cinco anos. Sendo ajustados durante o desenvolvimento, de acordo com o feedback de testes informais. A concretiza c ao do corpo do robot exigiu compet encias exteriores ` a minha forma c ao espec ca como a Electr onica ou o Design; estas necessidades foram ultrapassadas atrav es do contacto e interc ambio com pessoas experientes nessas areas. Os resultados obtidos atrav es do inqu erito, permitem concluir que o robot conseguiu criar uma din amica de interac c ao mais pr oxima da ilus ao de vida do que a abordagem cl assica. Isto apoia a hip otese de que e favor avel analisar as t ecnicas desenvolvidas no cinema de anima c ao para desenvolver a expressividade. Contudo, mostram tamb em que o robot est a mais pr oximo de uma personagem que da ilus ao de vida. Dois eixos de evolu c ao podem ser tra cados: clareza na comunica c ao e variedade de reac c oes. Para a primeira, e importante consultar o trabalho desenvolvido nas areas que nela se focam directamente como a m usica, a dan ca ou o teatro. Certamente que, com o apoio de uma pessoa experiente nas 73

Cap tulo 8. Conclus oes

artes do espet aculo, os movimentos do Freddy se tornariam mais expressivos e apelativos; ou que, sob a orienta c ao de um m usico, uma linguagem n ao-verbal seria mais harmoniosa e comunicativa. A rob otica sempre foi um dom nio multidisciplinar: nela se cruzam dom nios cient cos como a Mec ancia, a Electr onica ou a Inform atica. Por em, para uma aproxima c ao da ilus ao de vida, o espectro de areas envolvidas deveria ser alargado para englobar as ` areas da expressividade. Quanto ` a t ecnica para obter a reactividade em tempo-real, a Rob otica Comportamental permite ultrapassar tanto o problema do tempo de processamento de sinal como da variabilidade da resposta sem recorrer ` a aleatoriedade. Todavia, o equil brio entre a escolha dos est mulos e a dura c ao do comportamento e delicado. Os est mulos t em que corresponder aos eventos pretendidos e a dura c ao da respostas tem que ser compat vel com a sua frequ encia. Simultaneamente, a resposta precisa de durar tempo suciente para ser percept vel sem criar um atraso na reactividade. O projecto foi divulgado por diferentes meios, os mais enriquecedores foram o interc ambio durante a resid encia e a observa c ao de resultados durante a exposi c ao. No futuro, o trabalho pode obter ainda melhores resultados no ambito da ilus ao de vida desenvolvendo os dois eixos anteriormente mencionados. Mais concretamente: o desenvolvimento da utiliza c ao dos recursos expressivos (nomeadamente o movimento) na reac c ao ao som com o apoio de um artista de teatro ou dan ca; o desenvolvimento de uma linguagem pr opria n ao-verbal com o apoio de um m usico. A modela c ao de um estado emocional que permita a persist encia da inu encia dos est mulos. J a no campo da mec anica, as quest oes mais relevantes s ao: a constru c ao de um corpo mais pequeno, mais robusto e que implique menor esfor co dos motores.

74

Ap endice A

Processo de cria c ao de uma placa electr onica


Todas as placas utilizadas neste projecto (` a excep c ao do Arduino) foram criadas e executadas expressamente para o robot. A cria c ao destas placas constitu u uma das tarefas executadas no ambito do est agio. O processo utilizado para a cria c ao de cada uma das placas encontra-se descrito no conjunto de passos que se segue. Primeiro Na primeira fase e desenha-se o esquema da placa (ver gura A.1a). Segundo De seguida e necess ario estabelecer a disposi c ao dos componentes (layout ) na PCI (ver gura A.1b). Terceiro Depois de denido o desenho da placa, este tem que ser impresso numa folha de acetato, a preto e branco. Nesta folha, as pistas electr onicas e os restantes elementos que depois car ao em cobre na placa, s ao desenhados em preto, cando transparente tudo o resto (ver gura A.1c). Quarto Depois de desenhada, a folha de acetato e utilizada no processo de insola c ao. Este consiste na exposi c ao de uma placa virgem ` a radia c ao ultravioleta, sobre a qual se coloca o acetato desenhado. Neste caso a placa utilizada era composta por l a de vidro refor cada com poliep oxido (FR-4) com cobre apenas numa face, revestido com uma pel cula foto-sens vel de origem. Utilizando uma placa de apenas uma face e 75

Cap tulo A. Processo de cria c ao de uma placa electr onica

previamente sensibilizada (gura A.1d), retira-se a protec c ao da placa e coloca-se no equipamento que fornece a radia c ao ultravioleta, sobre o acetato que a tinha sido colocado previamente. A placa ca exposta durante 180 segundos. Quinto De seguida, a placa ca a repousar num banho de soda c austica, com o objectivo de retirar a resina que cou exposta no equipamento de ultravioleta (revela c ao). Sexto Para eliminar (por corros ao) o cobre desnecess ario, a placa e mergulhada em percloreto de ferro aquecido onde permanece durante alguns minutos. Finalmente, a placa e lavada em agua cando com o aspecto que se pode observar na gura A.1e. S etimo Depois de obtidas (todas) as placas requeridas para o projecto, estas devem ser perfuradas enquanto as pistas ainda est ao protegidas por resina. Na gura A.1f mostra-se uma placa depois de perfurada. Oitavo Nesta fase soldam-se na placa os componentes de cada placa, sendo necess ario retirar previamente a resina que cobre as pistas com acetona. Na gura A.1g a placa apresenta j a o seu aspecto nal.

76

Cap tulo A. Processo de cria c ao de uma placa electr onica

(a) Esquema da placa que alimenta os motores.

(b) Disposi ca o dos componentes no PCI.

(c) Imagem utilizada na sensibiliza ca o da placa que alimenta os motores.

(d) Placa antes de ser trabalhada.

(e) Placa com as pistas antes de ser perfurada.

(f) Placa perfurada e com alguns componentes soldados.

(g) Placa acabada e em funcionamento.

Figura A.1: As v arias fases no processo de cria c ao de uma placa.

77

Cap tulo A. Processo de cria c ao de uma placa electr onica

78

Ap endice B

Estrutura do robot
Os sensores e actuadores do robot necessitam de uma estrutura electr onica e mec anica para funcionar; de seguida referem-se em detalhe os seus componentes bem como a forma de os montar. Na gura B.1 mostra-se um esquema desta estrutura. As pe cas referidas s ao feitas em PVC cortado ` a medida. A estrutura possui dois eixos de sustenta c ao verticais, cada um deles constitu do por dois tubos de lat ao de di ametros diferentes, de forma a que o de di ametro menor possa deslizar dentro do outro. Os dois bra cos laterais articulados s ao compostos, cada um, por dois var oes unidos com pushrod e ligados ao copo dos l apis com um ball link . Mostra-se o esquema dos bra cos na gura B.2. Esta estrutura pode ser replicada se forem executadas as seguintes instru c oes:

1. Medir e cortar quatro tubos de lat ao: dois tubos mais largos com 13,5 cm de comprimento e dois tubos mais nos de 14 cm, respectivamente. 2. Medir e cortar as 5 pe cas de PVC segundo os esquema dados em B.4 e B.5. 3. Fazer os furos para os tubos de lat ao nos, para os pregos e para os tubos de suporte nas pe cas A, B, C e E ao mesmo tempo. 4. Alargar os furos para os tubos grossos nas pe cas B e C (tamb em em simult eneo). 5. Na pe ca B, fazer os dois furos rectangulares e o circular de 1,5 cm de di ametro. 6. Pregar as pe cas B e E. 7. Montagem do copo inferior: (a) Fixar a pe ca A ao copo com ta-cola. 79

Cap tulo B. Estrutura do robot

Pea A

Pea B Pea D Pea F Pea C Pea E Legenda Brao Varo roscado 2 plano Eixo Copo Motor

Figura B.1: Esquema da estrutura do robot. (b) Marcar o local dos furos. (c) Furar o copo. (d) Voltar a juntar pe ca A, o copo e os parafusos (com a cabe ca dentro do copo). (e) Aplicar cola na parte do parafuso de fora do copo. (f) Fixar enquanto a cola seca. (g) Aplicar lubricante (WD40) dentro dos tubos mais largos e por fora dos nos. (h) Enroscar cada parafuso num tubo de lat ao no. (i) Com um ferro de soldar, fazer dois furos em lados opostos, na parte superior do copo derretendo o pl astico. Estes furos devem estar alinhados com as varetas xadas nos motores. (j) Ainda com o ferro, criar uma abertura na base do copo para posteriormente permitirem a passagem das liga c oes el ectricas do motor e do sensor. (k) Encaixar os pushrod s. (l) Fixar com porca e anilha. 8. Montagem do copo superior: (a) Num bra co do motor de rota c ao, fazer tr es furos que permitam a passagem dos parafusos que xam o bra co ao copo. 80

Cap tulo B. Estrutura do robot

(b) Fixar o bra co ao centro do copo. (c) Furar o copos e o PVC com os pr oprios parafusos. (d) Fixar o sensor de peso (virado para cima) ao fundo do motor de rota c ao com ta-cola. 9. Uni ao dos dois copos: (a) Encaixar o bra co xado ao copo superior no motor de rota c ao. (b) Aplicar ta-cola de dupla face no fundo do motor de rota c ao. (c) Passar os os do motor e do sensor de peso pela abertura lateral do copo de inferior. (d) Fixar a ta-cola dupla no copo de baixo. 10. Montagem das placas: (a) Colocar todas as placas electr onicas sobre a pe ca E. (b) Marcar os locais para os furos de xa c ao. (c) Retirar as placas e furar. (d) Utilizar parafusos auto-roscantes para xar as placas nos locais marcados. Para o arduino, utilizar tr es pregos (para que seja poss vel retir a-lo). 11. Cravar e ligar cabos segundo o esquema da gura B.3. 12. Calibrar os motores: (a) Fixar os motores nas pe cas D com parfusos. (b) Encaixar os tubos mais largos nas pe cas B e C. Os tubos atravessam os furos anteriormente feitos nestas placas. (c) Encaixar a estrutura do copo. (d) Montar as varetas que ligam o motor ao copo. (e) Retirar vareta B do bra co C. (f) Para calibrar correctamente os motores, e necess ario utilizar o arduino para xar a posi c ao dos motores. A melhor forma de ordenar os motores e carregar o arduino com um programa que aceite ordens pela porta de s erie. (g) Ap os o programa ter sido carregado, colocar os motores no angulo mais baixo sem estar em esfor co. (h) Encaixar o bra co C na posi c ao que permita ao copo car na posi c ao mais baixa quando a vareta B for encaixada e simultaneamente ver que o motor n ao se encontra em esfor co. (i) Apertar a porca do pushrod da posi c ao 2 (da gura B.2a). 81

Cap tulo B. Estrutura do robot

Posio 3 Posio 1
16 cm

Posio 2

Posio 4

7,5 cm

Posio 5

Legenda
Pushrod Brao Vareta Ball link

(a) Extens ao do bra co do motor.

(b) Vareta que liga a ` extens ao do bra co para elevar o copo.

Figura B.2: Mecanismo para transformar o movimento do motor. (j) Voltar a encaixar a vareta B e apertar a rosca dos pushrod s de forma impedir a vareta de rodar ou deslizar. 13. Se for necess ario retirar a estrutura do copo, basta soltar o pushrod na posi c ao 1 (da gura B.2a).

82

Cap tulo B. Estrutura do robot

Legenda
Energia, 5v 1A Sinal, motor Energia 12v 2A Terra Sinal, LED vermelho Sinal, LED branco Sinal, LED azul LEDs Arduino
!" #$%&

Placa com regulador de tenso Placa com interruptor Placa com entrada de energia Placa com LEDs Motor

LEDs
!"#$%& !"#$%& !"#$%&

LEDs

Figura B.3: Liga c oes el ectricas entre os v arios componentes.

2 cm 3 cm

2 cm

13 cm

7 cm

Figura B.4: As pe cas A, C e D identicadas na estrutura.

83

5 cm

2.5 cm

Cap tulo B. Estrutura do robot

25 cm

1,5 cm

7 cm

Figura B.5: As pe cas B e E identicadas na estrutura.

3 cm 2 cm 1 cm 7 cm
(a) Pe ca B.

19,5 cm

2,5 cm

25 cm

19,5 cm

(b) Pe ca E.

84

Ap endice C

Placas criadas para o robot


Foram criadas cinco tipos de placas para o presente projecto: C.1 Placa de alimenta c ao dos motores; C.2 Placa de suporte ao sensor de peso; C.3 Placa de alimenta c ao do robot directamente de uma tomada; C.4 Placa de suporte aos LEDs; C.5 Placa de interruptor de energia. Os circuitos de cada placa foram desenhados utilizado o software gratuito Eagle [CadSoft 2009]. O isolamento foi garantido utilizando um de dois acabamentos (conforme a aplica c ao): crimp housing ou manga t ermica. Tanto num caso como noutro o cabo e primeiro cravado em crimp socket . Para o acabamento em crimp housing basta encaixar. J a no caso da manga t ermica, e necess ario cortar um segmento de tamanho apropriado, colocar no cabo e depois xar atrav es da aplica c ao de calor. Nas sec c oes seguintes mostra-se a planica c ao utilizada para a constru c ao das placas acima mencionadas, compreendendo o esquema respectivo, a disposi c ao no PCI e o seu aspecto nal.

C.1

Alimenta c ao dos motores

Foram necess arias tr es placas deste tipo, uma para cada motor. Duas delas feitas atrav es do m etodo descrito na sec c ao A e uma terceira com uma placa previamente furada. 85

Cap tulo C. Placas criadas para o robot

(a) Esquema da placa que alimenta os motores.

(b) Disposi ca o dos componentes no PCI.

(c) Representa ca o da placa em tr es dimens oes.

(d) Placa acabada e em funcionamento.

Figura C.1: Fases da placa de alimenta c ao dos motores.

O circuito desta placa transforma os 12 volts fornecidos pelo transformador utilizado em 5 volts, uma vez que e essa a tens ao de que necessitam os motores. A corrente e a refer encia e dada atrav es de um header de dois pinos que est a ligado ` a placa de corte de energia atrav es de dois cabos. Foi utilizado um regulador de tens ao, do tipo LM7805, bem como um pequeno dissipador para evitar o aquecimento excessivo. Antes do regulador de tens ao foram adicionados condensadores: um de um microampere para salvaguardar dos picos de tens ao e um segundo para corresponder ao elevado consumo de energia que ocorre no arranque do motor. Na gura C.1 a encontram-se v arios planos da placa: o esquema, a disposi c ao no PCI e o aspecto nal.

C.2

Sensor de peso

Esta placa cont em todos os componentes necess arios ao funcionamento do sensor de peso, neste caso um FSR. 86

Cap tulo C. Placas criadas para o robot

Tabela C.1: Ganhos experimentados para o sensor de peso. Ganho 100 500 1000 2000 5000 Resist encia 2k 400 200 100 40

Os componentes s ao os seguintes: Um regulador de tens ao dedicado, com a refer encia LM7805, para que os motores n ao causassem interfer encia. Quatro resist encias formando uma ponte de Wheatstone . Um amplicador de sinal aplicado como no esquema C.2b. O amplicador utilizado foi o INA122 da Texas Instruments. O esquema e a disposi c ao no PCI encontra-se na gura C.2. A equa c ao que dene o ganho do amplicador de sinal e a C.2.1, v arias ganhos foram experimentados em conjuga c ao com a c elula de carga (ver tabela C.1). 200k RG

G=5+

(C.2.1)

C.3

Conector para energia

Nesta placa o conector est a ligado a um LED para simplicar a verica c ao de erros. Tanto o lado positivo como o negativo est ao ligados a um header para permitir as liga c oes ` as outras placas atrav es de cabos. Os detalhes da placa bem como uma fotograa dela em funcionamento s ao as imagens que constituem a gura C.3.

C.4

LEDs

Os LEDs desta placa destinam-se a iluminar o interior do robot (o copo) como elemento potenciador da sua expressividade. A placa inclui dois LEDs vermelhos, um azul e outro laranja. Todos eles s ao de alto brilho com 5 mm. 87

Cap tulo C. Placas criadas para o robot

(a) Esquema da placa que alimenta os motores.

(b) Esquema aconselhado pelo fornecedor do amplicador de sinal.

(c) Disposi ca o dos componentes no PCI.

(d) Placa acabada e em funcionamento.

Figura C.2: Fases da placa para o sensor de peso.

88

Cap tulo C. Placas criadas para o robot

(a) Esquema da placa que alimenta o robot.

(b) Disposi ca o dos componentes no PCI.

(c) Representa ca o da placa em tr es dimens oes.

(d) Placa acabada e em funcionamento.

Figura C.3: Fases da placa de alimenta c ao do robot. O esquema, a disposi c ao no PCI e uma imagem da placa nalizada encontram-se na gura C.4.

C.5

Interruptor de energia

Esta placa tem como objectivo controlar a alimenta c ao dos motores permitindo ligar e desligar atrav es de um bot ao. Os cabos de liga c ao ` as placas dos motores fazem contacto com o interruptor atrav es de um header de quatro pinos. Esta placa est a ligada ` a que cont em o conector que fornece a energia tamb em por meio de um header , desta vez de dois pinos. Os detalhes da placa encontram-se na gura C.5.

89

Cap tulo C. Placas criadas para o robot

(a) Esquema da placa que alimenta o robot.

(b) Disposi ca o dos componentes no PCI.

(c) Representa ca o da placa em tr es dimens oes.

(d) Placa acabada, face inferior.

(e) Os LEDs cam de um lado do PCI e a placa ca do outro.

(f) Placa vista de cima.

Figura C.4: Fases da placa com os LEDs.

(a) Esquema da placa.

(b) Disposi ca o dos componentes no PCI.

(c) Representa ca o da placa em tr es dimens oes.

(d) Placa acabada e em funcionamento.

Figura C.5: Fases da placa com o interruptor para a alimenta c ao dos motores.

90

Ap endice D

Detalhes de implementa c ao
A gura D.1 cont em o diagrama de classes do controlador principal descrito na sec c ao 5.2. O algoritmo 7 detalha o processo de decis ao da transforma c ao de uma ordem relativa em ac c oes a transmitir ao controlador do Arduino. O algoritmo 8 mostra o an alogo para as ordens absolutas e o 9 para as de ajuste. Algoritmo 7 Transforma c ao de uma ordem relativa pr oximoEstado = new Action() {Luz azul} if ordem.azul then pr oximoEstado.triste = estado.triste = !estado.triste end if {O an alogo e feito com os outros LEDs} {Ordens para os motores} if ordem.esquerdo != 0 then estado.eleva c aoEsquerda = limitar((ordem.esquerdo+estado.eleva c aoEsquerda), AM PLITUDE MINIMA, AMPLITUDE MAXIMA) pr oximoEstado.eleva c aoEsquerda = estado.eleva c aoEsquerda end if return pr oximoEstado

91

Cap tulo D. Detalhes de implementa c ao

IMThread
+ BAD : int {readOnly} + GOOD : int {readOnly} + NEUTRAL : int {readOnly} + PATH_INCOMING : String {readOnly} - watchService : WatchService <<create>> IMThread(persQ : ArrayBlockingQueue<SensorIn>) - watchFolder() : void
- personalityQueue - amp_beatMax : oat - amp_beatMin : oat - amp_loudNoise : oat - magnifySignal : oat - startTimer : long - state_beat : boolean - state_loudNoise : boolean <<create>> MicThread(inQ : ArrayBlockingQueue<SensorIn>, bu : int, ampLoudNoise : oat, beatMin : oat,beatMax : oat, magnify : int) - isClap() : boolean - isState_loudNoise() : boolean "#personalityQueue - soundAnalyse() : void ! !

MicThread

Inicia Inicia

Freddy
bodyQ : ArrayBlockingQueue<ExpressYourself> inQ : ArrayBlockingQueue<SensorIn> myPort : Serial soundQ : ArrayBlockingQueue<Message> setup() : void main(arg : String[]) : void

SensorIn ArrayBlockingQueue
!

- inQueue Inicia "#$%&'($%)*&+'%,

- inQueue

PersonalityThread

"#$%&'($%)/,),
0%$&$1 0%$&$1

Message
!

<<create>> PersonalityThread( inQ : ArrayBlockingQueue<SensorIn>, bodyQ : ArrayBlockingQueue<ExpressYourself>, soundQ : ArrayBlockingQueue<Message>) - processInput() : void caseLoudNoise() : void - soundQueue - caseBeat() : void - caseMessage() : void
! ! "#bodyQueue !

ArrayBlockingQueue
!

ExpressYourSelf

ArrayBlockingQueue
!

- incomingMsgs

"#$%&'($%)*&+'%,

ExpressYourself
+ + + + + + + + + blue : boolean red : boolean white : boolean right : int left : int rotate : int msg : boolean adjust : boolean toTxt() : String + + + + + + + + +

Action
sad : boolean angry : boolean neutral : boolean light : boolean upDown : int upDownL : int upDownR : int rotate : int toTxt() : String

VoiceThread
- MESSAGE_SOUND : String {readOnly} - MSG_SOUND_INDEX : int[] {readOnly} + msgSound : AudioSnippet <<create>> VoiceThread(incoming : ArrayBlockingQueue<Message>) - playMsg(msg : String) : void

BodyThread
- AMP_MAX_R : int {readOnly} - AMP_MIN_R : int {readOnly} + AMP_MAX : int {readOnly} + AMP_MIN : int {readOnly} + ANGRY : int {readOnly} + HAPPY : int {readOnly} + SAD : int {readOnly} + HAPPYUP : int {readOnly} + HIDE : int {readOnly} + MIDDLE : int {readOnly} + SAFETY_LOWER : int {readOnly} + SAFETY_UPPER : int {readOnly} state : Action <<create>> BodyThread(incoming : ArrayBlockingQueue<ExpressYourself>) - absoluteOrder(order : ExpressYourself) : Action - toSerialUpDown(posUD : int) : void - toSerialAngry() : void - toSerialSad() : void - toSerialWhite() : void - playAction(a : Action) : void - processOrder(order : ExpressYourself) : void - relativeOrder(order : ExpressYourself) : Action

SensorIn
+ + + + + + + + + + getFileName() : String getMessage() : Message getNick() : String "#($& getType() : int isMessage() : boolean isSound() : boolean "#%-. isState_beat() : boolean isState_command() : boolean isState_loudNoise() : boolean isState_pplNear() : boolean

Sound
state_beat : boolean state_command : boolean state_loudNoise : boolean state_pplNear : boolean

Message
!

+ + + +

leName : String nick : String processingTime : long type : int

Figura D.1: Diagrama de classes.

92

Cap tulo D. Detalhes de implementa c ao

Algoritmo 8 Transforma c ao de uma ordem absoluta pr oximoEstado = new Action() {Luz azul} if ordem.azul && !estado.triste then {se est a ligado e e para car desligado e preciso alterar o LED} estado.triste = pr oximoEstado.triste = true else if !ordem.azul && estado.triste then {se est a desligado e e para car ligado tamb em} estado.triste = false pr oximoEstado.triste = true end if {O an alogo e feito com os outros LEDs} {Ordens para os motores} pr oximoEstado.eleva c aoEsquerda = estado.eleva c aoEsquerda = ordem.esquerdo pr oximoEstado.eleva c aoDireita = estado.eleva c aoDireita = ordem.direito pr oximoEstado.rodar = estado.rodar = ordem.rodar return pr oximoEstado

Algoritmo 9 Transforma c ao de uma ordem de ajuste pr oximoEstado = new Action() if estado.eleva c aoEsquerda <BodyThread.SEGURANCA MAXIMO then estado.eleva c aoEsquerda = estado.eleva c aoEsquerda+1 pr oximoEstado.eleva c aoEsquerda = estado.eleva c aoEsquerda else if estado.eleva c aoEsquerda >BodyThread.SEGURANCA M INIMO then estado.eleva c aoEsquerda = estado.eleva c aoEsquerda-1 pr oximoEstado.eleva c aoEsquerda = estado.eleva c aoEsquerda else if estado.rodar != BodyThread.CONTENTE then pr oximoEstado.rodar = estado.rodar = BodyThread.CONTENTE if estado.triste then estado.triste = false pr oximoEstado.triste = true end if {O an alogo e feito com os outros LEDs} end if {O outro motor faz o mesmo} pr oximoEstado.eleva c aoDireita = estado.eleva c aoDireita = estado.eleva c aoEsquerda return pr oximoEstado

93

Cap tulo D. Detalhes de implementa c ao

94

Ap endice E

Question ario

Figura E.1: Parte da primeira p agina do question ario.

95

Cap tulo E. Question ario

(a) Segunda parte da p agina um do question ario.

Freddy
Junst one more question to go! / S mais uma pergunata!
If yes what animal and why? What features in Freddy make him look similar to that animal?

Back

Continue

(b) P agina dois do question ario.

Freddy
The End! / Fim!
Thank you so much for filling this form / Muito obrigada por ter preenchido o questionrio.

What would you change in Freddy? / O que mudaria no Freddy? The way he reacts, what he does, the way he looks. Please give a sugestion if you have one. / A maneira como reage, o que ele faz, o seu aspecto. Por favor deixe a sua sugesto, se tiver.

Back

Submit

(c) P agina tr es do question ario.

Figura E.2: Continua c ao do question ario.

96

Termos e Siglas
Nota c ao ball link Descri c ao Pe ca de aeromodelismo utilizada para unir as varetas a outra superf cie atrav es de uma bola que permite a rota c ao. crimp housing Componente electr onico do tipo conector f emea-f emea. Especicamente, consiste num encaixe que de um lado alberga um crimp socket e do outro lado um header. crimp socket Componente electr onico do tipo conector f emea-f emea. Especicamente, consiste numa manga ou engate que de um lado e em forma de tubo e do outro e em forma de garra que e xada atrav es de press ao no cabo el ectrico. header Componente electr onico que consiste num conector do tipo macho-macho. Geralmente liga pistas de PCI a os el ectricos. jack socket Conector electr onico que que fornece corrente directa (direct current - DC). pushrod Pe ca de aeromodelismo que se utiliza para ligar o servo ao aileron. 27, 79 82 46 48, 86, 87, 89 85 40, 85 P agina 27, 79

Arduino

Um Arduino e uma plataforma de prototipagem open-source, baseada em hardware e software ex vel e f acil de usar. Possui tamb em um IDE com o mesmo nome.

44, 51, 52, 55, 59, 91

c elula de carga

Dispositivo electr onico que mede a for ca exercida por um peso.

44, 87

97

Termos e Siglas

Nota c ao DEI

Descri c ao Departamento de Engenharia Inform atica da Universidade de Coimbra

P agina 22, 23

envelope ADSR

Envelope de amplitude de som comum com quatro segmentos Attack Decay Sustain Release (ADSR).

50

ESB

arquitectura de software que permite o desacoplamento entre servi cos atrav es da liga c ao a uma estrutura comum preparada para aceitar v arios protocolos, do ingl es enterprise service bus (ESB)

58

FR-4 FSR

l a de vidro refor cada com poliep oxido Force Sensing Resistor

75 44, 86

IDE

Integrated Development Environment

44

LCD

Acr onimo de mostrador de cristal l quido, em ingl es liquid crystal display.

41, 42

LED

Diodo emissor de luz ou Light Emitting Diode

26, 27, 2931, 48, 5255, 65, 85, 87

OLED

Acr onimo de d odo org anico emissor de luz ou fotoemissor, em ingl es organic light-emitting diode.

42

PCI

Placa de Circuito Impresso

46, 75, 8587, 89

98

Termos e Siglas

Nota c ao ponte de Wheatstone

Descri c ao Dispositivo composto por v arias resist encias interligadas (geralmente quatro) que permite amplicar um sinal.

P agina 45, 87

princ pios da anima c ao

O trabalho de Johnston e Thomas [1995] na area de anima c ao e uma refer encia; aqui foram descritos os doze princ pios de anima c ao utilizadas nos est udios Disney. Os relevantes para este trabalho encontram-se descritos na tabela 2.4 .

2,

9,

10, 14, 19, 25, 27

Processing

Linguagem de programa c ao open source orientada ` as artes electr onicas e visuais. Possui tamb em um IDE com o mesmo nome.

44, 51, 59

Proclipsing

Plug-in do Eclipse que facilita a utiliza c ao do Processing enquanto biblioteca de Java e n ao no contexto do IDE pr oprio.

44

PVC

Policloreto de Vinilo

26, 41, 79, 81

RMS

Raiz da m edia do quadrado dos valores, do ingl es root mean square (RMS). Valor utilizado em processamento de audio para calcular a pot encia do sinal.

62

Rob otica Comportamental

Ramo da rob otica que utiliza um modelo interno do ambiente muito reduzido ou n ao o utiliza de todo. Os robots reagem aos valores que obt em dos sensores.

i,

56,

59, 74

SOA

Arquitectura orientada aos servi cos, do ingl es service oriented architecture (SOA)

58

torque

For ca f sica que descreve a tend encia de uma for ca movimentar um objecto ` a volta de um eixo.

42

99

Termos e Siglas

100

Refer encias
AZ (2010). AZLabs @ espa co o tempo. http://www.tpolm.org/ps/AZ ET/. Barnes, J. & Hutchens, J. (2007). Testing undened behaviour as a result of learning. In S. Rabin (Ed.), AI game programming wisdom (pp. 615). Charles River Media. Bates, J. (1994). The role of emotion in believable agents. Communications of the ACM, 37, 122125. Bates, J. (2002). OZ project. http://www.cs.cmu.edu/afs/cs.cmu.edu/project/oz/web/oz.html. Bates, J., Loyall, B., & Reilly, S. (1992). An architecture for action, emotion, and social behavior. In Modelling Autonomous Agents in a Multi-Agent World, (pp. 68, 55). Berlin, M. R. (2008). Understanding the embodied teacher : nonverbal cues for sociable robot learning. Thesis, Massachusetts Institute of Technology. Thesis (Ph. D.) Massachusetts Institute of Technology, School of Architecture and Planning, Program in Media Arts and Sciences, 2008. Blumberg, B., Downie, M., Ivanov, Y., Berlin, M., Johnson, M., & Tomlinson, B. (2002). Integrated learning for interactive synthetic characters. In SIGGRAPH 02: Proceedings of the 29th annual conference on Computer graphics and interactive techniques, volume 21, (pp. 426, 417)., San Antonio, Texas. ACM. Blumberg, B., Downie, M., Ivanov, Y., Berlin, M., Johnson, M. P., Tomlinson, B., Lyons, D., Buchsbaum, D., Beatty, G., & Wong, A. (2003). Dobie t. coyote. Blumberg, B. M. (1997). Old tricks, new dogs: ethology and interactive creatures. PhD thesis, Massachusetts Institute of Technology. Braitenberg, V. (1986). Vehicles: Experiments in Synthetic Psychology. The MIT Press. Bratman, M. (1999). Intention, Plans, and Practical Reason. Cambridge University Press. Brooks, R. (1986). A robust layered control system for a mobile robot. Robotics and Automation, IEEE Journal of, 2 (1), 1423. Burke, R., Isla, D., Downie, M., Ivanov, Y., & Blumberg, B. (2001). Creature smarts: The art and architecture of a virtual brain. In Proceedings of the Computer Game Developers Conference, (pp. 147166). CadSoft (2009). Eagle. http://www.cadsoftusa.com/. DuBois, R. (2006). Rabbit says bizzare things is it possessed? http://nabaztag.forumactif.fr/rabbit-s-services-f16/rabbit-says-bizzare-things-isit-possessed-t1813.htm. 101

REFERENCIAS

Evans, R. (2002). Varieties of learning. In S. Rabin (Ed.), AI game programming wisdom (pp. 567). Charles River Media. Faria, M. (2010a). Freddy. http://margaridacf.weebly.com/freddy.html. Faria, M. (2010b). Freddy dancing. http://www.youtube.com/watch?v=jDK0mz44pTY. Faria, M. (2010c). Freddy receiving messages. http://www.youtube.com/watch?v= v1j3cyO1F4. Faria, M. (2010d). Minduino. http://www.youtube.com/watch?v=1a9ZyZIUReE. Faria, M. (2010e). minduino caras. http://www.youtube.com/watch?v=yxrvJ3W3c. Grand, S., Cli, D., & Malhotra, A. (1997). Creatures: articial life autonomous software agents for home entertainment. In AGENTS 97: Proceedings of the rst international conference on Autonomous agents, (pp. 29, 22). ACM. Isla, D., Burke, R., Downie, M., & Blumberg, B. (2001). A layered brain architecture for synthetic creatures. In Proceedings of the 17th international joint conference on Articial intelligence - Volume 2, (pp. 10511058)., Seattle, WA, USA. Morgan Kaufmann Publishers Inc. Johnston, O. & Thomas, F. (1995). The Illusion of Life: Disney Animation (Rev Sub ed.). Disney Editions. Kobayashi, E., Kumakura, T., Akabane, M., Kobayashi, K., Yamazaki, N., Nitta, T., & Oudeyer, P. Y. (2008). United states patent: 7412390 - method and apparatus for speech synthesis, program, recording medium, method and apparatus for generating constraint information and robot apparatus. Kozima, H., Michalowski, M., & Nakagawa, C. (2009). Keepon. International Journal of Social Robotics, 1 (1), 318. Lhermitte, E. & Lacrab` ere, M. (2009). http://nabazlab.sourceforge.net/dev en.html. NabazLab development.

Lionhead Studio (2010). Fables iii. http://lionhead.com/Fable/FableIII. Mateas, M. (1999). An Oz-Centric review of interactive drama and believable agents. Lecture Notes in Computer Science, 1600. McEnnis, D. (2008). JAudio a feature extraction system for digital audio. http://jaudio.sourceforge.net/. Michalowski, M. P., Sabanovic, S., & Kozima, H. (2007). A dancing robot for rhythmic social interaction. In Proceedings of the ACM/IEEE international conference on Human-robot interaction, (pp. 8996)., Arlington, Virginia, USA. ACM. Minsky, M. (1988). Society of Mind (Pages Bent ed.). Simon & Schuster. Moggridge, B. (2007). Designing Interactions (1 ed.). The MIT Press. Molyneux, P. (2001). Postmortem: Lionhead studios black & white. http://www.gamasutra.com/view/feature/3067/postmortem lionhead studios .php. Pagel, V. & Dutoit, T. (1996). http://tcts.fpms.ac.be/synthesis/mbrola.html. 102 The MBROLA PROJECT.

REFERENCIAS

Parviainen, O. (2009). SoundTouch http://www.surina.net/soundtouch/.

sound

processing

library.

Patin, F. (2003). Beat detection algorithms. http://www.gamedev.net/reference/ programming/features/beatdetection/. Pierre-Yves, O. (2003). The production and recognition of emotions in speech: features and algorithms. Int. J. Hum.-Comput. Stud., 59 (1-2), 157183. ps (2010). AZ residency day 13 - we were never gone - laborat orio de cria c ao digital -. http://labcd.org/2010/06/20/az-residency-day-13-%e2%80%93-we-were-nevergone/. Russell, J. A., FernAndez-Dols, J. M., & Mandler, G. (1997). The Psychology of Facial Expression. Number 2 in Studies in emotion and social interaction. Cambridge University Press. SCE London Studio (2009). EyePet. http://www.eyepet.com. Thomaz, A. & Breazeal, C. (2007). Robot learning via socially guided exploration. In Development and Learning, 2007. ICDL 2007. IEEE 6th International Conference on, (pp. 8287). Thomaz, A. L. (2006). Socially Guided Machine Learning. PhD thesis, Massachusetts Institute of Technology. Turing, A. (1950). Computing machinery and intelligence. Mind, 59 (236), 433460. Violet (2009a). My nablife. http://my.nabaztag.com/vl/action/myNablife.do. Violet (2009b). Nabaztalk http://www.nabaztalk.com/. Wistort, R. (2009). TOFU mini. Wistort, R. & Breazeal, C. (2009). TOFU: a socially expressive robot character for child interaction. In Proceedings of the 8th International Conference on Interaction Design and Children, (pp. 292293)., Como, Italy. ACM. nabaztag & smart object forums.

103

REFERENCIAS

104

Você também pode gostar