• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Dupla de Robôes Cooperativos
 

Dupla de Robôes Cooperativos

on

  • 809 views

Nowadays computers are just seen as machines that realize tasks. Affective computing tries to bring the human closer to the machine, creating a bond between both of them, through the adaptation of the ...

Nowadays computers are just seen as machines that realize tasks. Affective computing tries to bring the human closer to the machine, creating a bond between both of them, through the adaptation of the machine for better user understanding, making it possible to change the user’s perception of the machine. This work proposes the specification, modeling and implementation of a couple of sociable agents. Each agent will be built to have the form of an alligator, to increase the interaction with humans. The implementation will be done with the Lego Mindstorms kit, a tool widely used for the rapid prototipation of robots. To develop the robot's program, it will be used the Lego Mindstorms module of the software Labview.

Statistics

Views

Total Views
809
Views on SlideShare
809
Embed Views
0

Actions

Likes
0
Downloads
22
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Dupla de Robôes Cooperativos Dupla de Robôes Cooperativos Document Transcript

    • UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁTICA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Trabalho de Graduação Interdisciplinar DUPLA DE ROBÔS COOPERATIVOS Carlos Eduardo Faddul Nunes Renato Cesar Moretto Vinícius Cândido Trindade São Paulo 2011
    • Carlos Eduardo Faddul Nunes Renato Cesar Moretto Vinícius Cândido Trindade DUPLA DE ROBÔS DE COOPERATIVOS Trabalho de Graduação Interdisciplinar (TGI) apresentado como requisito parcial para a obtenção do Grau de Bacharel do Curso de Ciência da Computação da Universidade Presbiteriana Mackenzie. Orientador: Prof. Dr. Luciano Silva São Paulo Novembro – 2011
    • Agradecimentos Gostaríamos de agradecer aos nossos familiares e amigos, pelo apoio e companheirismo durante o decorrer de todo esse trabalho. Ao nosso orientador Prof. Dr. Luciano Silva, por toda ajuda, aconselhamento, critica e orientação, sempre conseguindo tempo para nos atender e retirar nossas duvidas, agradecemos a sua dedicação e paciência em atender o grupo. Ao Prof. Ms. Joaquim Pessoa Filho pelas idéias, sugestões e auxilio, no desde o início com a parte de automação do projeto e, pela disponibilidade para nos ajudar quando encontrávamos um problema. Também agradecemos todos os demais professores que nos ajudaram a chegar a este ponto, nos dando o conhecimento e experiência necessários para a realização deste trabalho. Agradecemos a todas as pessoas aqui citadas e acreditamos que sem vocês este trabalho não se realizaria.
    • Resumo Atualmente, os computadores são vistos como apenas máquinas que realizam tarefas. A Computação afetiva tenta aproximar o humano da maquina, criando um vinculo entre os dois, através da adaptação da máquina para maior compreensão do usuário, tornando possível que a imagem da máquina para o usuário mude. Este trabalho propõe a especificação, modelagem e implementação de uma dupla de agentes sociáveis. Cada agente sociável será construído no formato de um crocodilo, para aumentar a interação com seres humanos. A implementação será realizada com o kit Lego Mindstorms, ferramenta bastante utilizada para prototipação rápida de robôs. Para o desenvolvimento do programa dos robôs será utilizado o módulo para o Lego Mindstroms do software Labview. Palavras-chave: Robótica Afetiva, Computação Afetiva, Inteligência Artificial, Interação Humano-Máquina.
    • Abstract Nowadays computers are just seen as machines that realize tasks. Affective computing tries to bring the human closer to the machine, creating a bond between both of them, through the adaptation of the machine for better user understanding, making it possible to change the user’s perception of the machine. This work proposes the specification, modeling and implementation of a couple of sociable agents. Each agent will be built to have the form of an alligator, to increase the interaction with humans. The implementation will be done with the Lego Mindstorms kit, a tool widely used for the rapid prototipation of robots. To develop the robot's program, it will be used the Lego Mindstorms module of the software Labview. Keywords: Affective Robotic, Affective Computing, Artificial Intelligence, Human Machine Interaction.
    • Lista de Figuras Figura 1.1: Diagrama das funções de um agente.............................................. 4 Figura 1.2: Um exemplo de sensor de áudio como o microfone........................ 5 Figura 1.3: Exemplo de LED receptores............................................................ 6 Figura 1.4: Exemplo de sensor de posição rotativo........................................... 6 Figura 1.5: Exemplo de sensor de pressão. ...................................................... 7 Figura 1.6: Exemplo de sensor de temperatura................................................. 7 Figura 1.7: Exemplo de sensor ultrassônico...................................................... 8 Figura 1.8: Exemplo de sensor de velocidade como o tacômetro. .................... 8 Figura 1.9: Exemplo de aplicação de um PLC................................................... 9 Figura 1.10: Exemplo de servo motor.............................................................. 11 Figura 1.11: Exemplo de eletroímã presente em motores............................... 11 Figura 1.12: Válvula solenóide para controle de água e gases. ...................... 12 Figura 1.13: Ilustração de garra de dois dedos. .............................................. 13 Figura 1.14:Ilustração de garra para objetos cilíndricos. ................................. 13 Figura 1.15: Ilustração de garra para objetos frágeis. ..................................... 14 Figura 1.16: Ilustração de garra articulada. ..................................................... 14 Figura 1.17: Ilustração de garra a vácuo e eletromagnética............................ 15 Figura 1.18: Ilustração de braço mecânico...................................................... 16 Figura 3.1: Componentes do kit Lego Mindstorms.......................................... 17 Figura 2.1: Robô Furby.................................................................................... 20 Figura 2.2: Robô Aibo...................................................................................... 21 Figura 2.3: Robô ASIMO em funcionamento................................................... 22 Figura 2.4: Robô Kismet em demonstração. ................................................... 22 Figura 2.5: Robô iCub. .................................................................................... 23 Figura 2.6: Arquitetura cognitiva do iCub. ....................................................... 24 Figura 3.2: Instrução de Montagem do Robô. ................................................. 28 Figura 3.3: Comparação entre o robô normal e o modificado. ........................ 28 Figura 3.4: Diferença entre os o uso modelo original para o da aplicação...... 29 Figura 3.5: Comparação entre os robôs em relação à altura das cabeças. 29 Figura 3.6: Retirada do sensor de toque. ........................................................ 30 Figura 3.7: Comparação entre o robô com o sensor de toque com a boca aberta e fechada. 30 Figura 3.8: Rede de Petri utilizada para o projeto. .......................................... 32 Figura 3.9: Painel de Controle......................................................................... 35 Figura 3.10: Aplicação Final............................................................................ 36 Figura 3.12: Estado de Patrulha, chegada ao estado de Posicionado............ 37 Figura 3.13: Caso de cor detectada default..................................................... 37 Figura 3.15: Estado de Posicionado................................................................ 38 Figura 3.16: Estado de Posicionado................................................................ 39 Figura 3.17: Estado de Procura....................................................................... 39 Figura 3.18: Estado de Procura, caso de detecção da cor vermelha.............. 40 Figura 3.19: Ambiente onde os testes correram.............................................. 41 Figura 3.20: Sequência onde o robô desvia do obstáculo............................... 42 Figura 3.21: Ambiente com obstáculos utilizado no teste. .............................. 43 Figura 3.22: Sequência de imagens do robô ao executar o desvio do obstáculo.......................................................................................................... 44 Figura 3.23: Robô colidindo com o obstáculo.................................................. 44
    • Figura 3.24: Ambiente com obstáculos e com o alvo utilizado no teste. ......... 45 Figura 3.25: Sequência onde o robô anda pelo ambiente............................... 46 Figura 3.26: Sequência de verificação do alvo................................................ 46 Figura 3.27: Foto do objeto utilizado como alvo.............................................. 47 Figura 3.28: Sequência onde o objeto encontrado é o alvo. ........................... 48 Figura 3.29: Sequência onde o robô ataca o alvo. .......................................... 48 Figura 3.31: Programa de comunicação do Host com o Client. ...................... 49 Figura 3.32: Programa de comunicação do Client com o Host. ...................... 49 Figura 3.33: Sequência de envio de mensagem. ............................................ 50 Figura 3.34: Foto do ambiente com os dois robôs. ......................................... 51 Figura 3.35: Sequência do primeiro robô encontrando o alvo......................... 52 Figura 3.36: Sequência do segundo robô encontrando o alvo. ....................... 52 Figura 3.37: Foto dos robôs atacando o alvo. ................................................. 53
    • Sumário Introdução .......................................................................................................... 1 Capítulo 1........................................................................................................... 3 Sistemas Robóticos............................................................................................ 3 1.1 Introdução................................................................................................. 3 1.2 Arquitetura Básica................................................................................. 3 1.2.1 Sensores ........................................................................................ 5 1.2.2 Controle.......................................................................................... 9 1.2.3 Atuadores ..................................................................................... 10 1.3 Funcionamento ................................................................................... 15 1.4 Lego................................................................................................. 17 Capítulo 2......................................................................................................... 18 Computação Afetiva ......................................................................................... 18 2.1 Introdução ........................................................................................... 18 2.2 Fundamentos da Computação Afetiva ................................................ 18 2.3 Exemplos de Sistemas Robóticos Afetivos ......................................... 19 2.4 Paradigmas da Computação Afetiva................................................... 24 2.5 Desafio Computacional ....................................................................... 25 Capítulo 3......................................................................................................... 26 Cooperação Afetiva em Sistemas robóticos..................................................... 26 3.1 Introdução ........................................................................................... 26 3.2 Proposta do Trabalho.......................................................................... 26 3.3 Construção dos robôs ......................................................................... 27 3.3.1 Modelo robótico afetivo................................................................. 31 3.3.2 implementação ............................................................................. 34 3.4 Testes e Resultados obtidos............................................................... 40 3.4.1 Testes de desvio........................................................................... 41 3.4.2 Teste de Verificação de Alvo............................................................ 45 3.4.3 Teste de ataque e verificação de efeito............................................ 47
    • 3.4.4 Teste de comunicação ..................................................................... 48 3.4.5 Teste de Sincronismo de Ataques.................................................... 51 Capítulo 4......................................................................................................... 54 Conclusão e trabalhos futuros.......................................................................... 54 Referências Bibliográficas................................................................................ 56
    • 1 INTRODUÇÃO Segundo Lockemann (2006), um robô pode ser visto como um conjunto de sensores associados com motores trabalhando em conjunto para atingir uma meta ou objetivo. De acordo com Picard (2000), a visão que se tem dos robôs ou máquinas, atualmente, é a de que são somente objetos que executam tarefas. Neste contexto, surge a Computação Afetiva, com o objetivo de tornar os usuários e as máquinas mais próximos, tornando as máquinas capazes de compreender os usuários e de analisar suas rotinas e preferências. Assim, a máquina estaria se aproximando do usuário ao conhecê-lo melhor, e isto possibilitaria que ela pudesse adaptar sua interface para que o usuário a compreende-se melhor também. Com isto, criaria um vínculo entre os dois, tornando possível que a imagem da máquina para o usuário mude. Neste contexto, o presente trabalho é proposto com o objetivo de desenvolver de um enxame de robôs afetivos que possam interagir entre si e cooperar na realização de tarefas. Para isso, será necessário conceber um modelo de Inteligência Artificial capaz de permitir uma maior interação entre os robôs, e com o usuário, ao mesmo tempo, simular o comportamento de um animal, individual e coletivamente. Este trabalho tem como desafio a elaboração de um modelo robótico que atue em um ambiente determinístico e seja capaz de encontrar um alvo definido por uma cor, se deslocar pelo ambiente sem ter problemas com obstáculos em seu caminho, e trocar mensagens com o outro robô para que os dois consigam atacar o inimigo juntos. A contribuição ao final do trabalho é o desenvolvimento de tal sistema robótico, este podendo ser melhorado e se tornar um modelo de estudo para a área de agentes cooperativos.
    • 2 O trabalho está estruturado da seguinte forma:  o Capítulo 1 apresenta os sistema robóticos, suas arquiteturas básicas e funcionalidades;  o Capítulo 2 aborda a Computação Afetiva, seus fundamentos, paradigmas e desafios;  o Capítulo 3 a implementação de um enxame de robôs com o objetivo de se testar mecanismos de Computação Afetiva na consecução cooperativa de um objetivo;  finalmente, no Capítulo 4, são apresentados as conclusões e os trabalhos futuros.
    • 3 CAPÍTULO 1 SISTEMAS ROBÓTICOS 1.1 INTRODUÇÃO Este capitulo terá como objetivo mostrar o que como será descrito um sistema robótico, desta forma especificando as diferenças dos mais diversos tipos de robôs presente no dia-a-dia. Será descrito desta maneira como um sistema robótico é visto na área de Computação como um agente, dos quais suas ações e reações são definidas através de um conjunto de componentes descritos como sensores, do qual é utilizado em larga escala; o controle, a área que traduz a leitura dos sensores em ações para o controlador executar as ações; e por fim os atuadores, que tratam da parte Mecatrônica de um sistema robótico, como sua movimentação, limites físicos de movimentação, dentre outras coisas. Para que se tenha uma visão de que um sistema robótico, se trata de um conjunto de componentes eletrônicos que são utilizados para automação, serão apresentados os diferentes tipos de robôs disponíveis para o mercado desde o de entretenimento até os de uso militar, desta maneira auxiliando o entendimento de que um sistema robótico não é somente algo para automatizar indústrias. 1.2 ARQUITETURA BÁSICA Segundo Russel e Norvig (2004), um agente deve operar de forma autônoma, perceber seu ambiente, persistir por um período de tempo prolongado, adaptando-se às mudanças e ser capaz de assumir metas de
    • 4 outros. Um agente, então, deverá perceber o que o está cercando por meio de sensores, decidir o que deverá ser feito a seguir e, então, agir por meio de atuadores. A Figura 1.1 ilustra os componentes de um agente: Figura 1.1: Diagrama das funções de um agente. Fonte: Figura adaptada de Russell e Norvig (2004, p. 34). Russel e Norvig (2004) utilizam um robô como um exemplo de agentes. Robôs podem perceber o ambiente através de sensores que podem ser sensores óticos, ultrassônico, toque, som dentre outros. A partir de algo captado, podem decidir o que fazer através da unidade de controle, onde um programa rodará o algoritmo responsável por enviar a resposta aos atuadores, que podem ser desde motores até membros mecânicos. Um robô que agrega grande parte destas características é o Lego Mindstorms da Lego (2010). Sensores Controle Atuadores Percepções Ações Ambiente Agente
    • 5 1.2.1 SENSORES Segundo Pazos (2002), sensor é um dispositivo que entrega um sinal elétrico proporcional a uma grandeza física mensurada. Existem sensores de posição, temperatura, umidade, pressão, vazão, presença, força, torque, corrente, cor, altura velocidade, proximidade, luminosidade, aceleração, campo magnético, sistemas de visão, e até sensores de cheiro. Observe-se que a maioria dessas grandezas físicas são analógicas e, portanto, se o controlador for digital será necessário um conversor A/D na entrada dele; mas a presença de um objeto, por exemplo, é uma grandeza digital. Portanto, a saída desse tipo de sensor ( que podem ser diversos tipos de sensores óticos, capacitivos, indutivos, ou até um simples switch ou tipos de pulsador), pode ser entregue diretamente à entrada de um controlador digital. Segundo Rosario(2005), dentre os diversos tipos de sensores existentes, será descrito alguns sucintamente:  Áudio: também conhecido como sensores de som, o sensor funciona traduzindo uma onda mecânica no ar, em um sinal elétrico, um exemplo disso é o microfone, figura 1.2. Figura 1.2: Um exemplo de sensor de áudio como o microfone. Fonte: http://goodmicsforrecording.com/
    • 6  Ópticos: Um sensor óptico é formado por um emissor e por um receptor de luz. O emissor pode ser um LED ou uma lâmpada. O receptor é um componente fotossensível, isto é, sensível à luz, como o fototransitor, os fotodiodo ou resistores variáveis pela luz. A figura 1.3 mostra um exemplo de um LED receptor. Os sensores da figura possuem um diodo LED(A) e um fototransistor(B). Figura 1.3: Exemplo de LED receptores. Fonte: http://www.hiwtc.com/  Posição: Um sensor muito utilizado em robôs exploradores, depende de fatores como movimentação, movimentos possíveis e, um atuador. A figura 1.4 é um exemplo valido de sensor de posição. Figura 1.4: Exemplo de sensor de posição rotativo Fonte: http://www.nei.com.br
    • 7  Pressão: São sensores utilizados em locais onde os seres humanos, não suportariam tais condições de pressão, como o fundo do mar ou pressão de gases. Na figura 1.5 um sensor de pressão pode ser visto. Figura 1.5: Exemplo de sensor de pressão. Fonte: http://turbi.turbisegmento.pt/  Temperatura: Servem para evitar superaquecimento em máquinas ou só para controlar a temperatura do sistema. Podem ser controlados por sensores de Par Bimetálico. Na figura 1.6 um sensor de temperatura que um fio de platina enrolado não individualmente sobre um cilindro de cerâmica. Figura 1.6: Exemplo de sensor de temperatura. Fonte: http://www.fpam.pt
    • 8  Ultrassônico: São geralmente utilizados como sensores de proximidade. Podem apresentar problemas de funcionamento em ambientes que contenham altos índices de 'ruídos', entretanto podem ser utilizados em ambientes impregnados de umidade e pó. Existem sensores ultrassônicos digitais ou analógicos que emitem sinal de acordo com a distância do objeto. Na figura 1.7 um sensor ultrassônico que possui dois discos, um para a transmissão das ondas sonoras, e outro para a recepção do eco das ondas transmitidas. Figura 1.7: Exemplo de sensor ultrassônico. Fonte: http://aliatron.com/  Velocidade: O sensor de velocidade mais utilizado é o tacômetro, encontrado na figura 1.8, este consiste simplesmente num dínamo que gera um sinal de corrente contínua de amplitude proporcional à velocidade de rotação do seu eixo. Figura 1.8: Exemplo de sensor de velocidade como o tacômetro. Fonte: http://www.pce-iberica.es
    • 9 1.2.2 CONTROLE Segundo Rosário (2005), na área industrial, um Programmable Logic Controller (PLC) é um dispositivo físico-eletrônico, que possui uma memória interna programável capaz de armazenar sequência de instruções lógicas binárias, além de outros comandos. Um PLC possui um dispositivo para se conectar com equipamentos externos, o que permite o recebimento e/ou o envio de variáveis de entrada ou de saída, como é ilustrado no diagrama da figura 1.9, logo a seguir. Figura 1.9: Exemplo de aplicação de um PLC. Fonte: Figura adaptada de Rosário (2005, p. 283).
    • 10  Variáveis de entrada: são sinais externos recebidos pelo PLC, vindos tanto de um processo controlado, como de comandos gerados pelo operador. Exemplos: sensores, chaves, transdutores etc.  Variáveis de saída: são os dispositivos que cada ponto de saída do CLP controla. Tais pontos podem servir para realizar uma intervenção direta no processo controlado por acionamento próprio ou também para sinalizar o estado em painel sinóptico. Exemplos: válvulas solenóides, displays, chaves sinais para outros PLCs dentre outros. O princípio de funcionamento fundamental do CLP é a execução, dentro da CPU, de um programa desenvolvido pelo fabricante (Firmware), que realiza sistematicamente ações de leitura das variáveis de entrada por meio do módulo de entrada do CLP, em conjunto com a execução de um programa armazenado e desenvolvido pelo usuário, destinado ao controle e monitoramento de tarefas específicas, onde, por meio de uma lógica implementada, faz ou não intervenções nas variáveis de saída pelo módulo de saída do CLP. 1.2.3 ATUADORES Do ponto de vista tecnológico, são os dispositivos mecânicos que aplicam ou fazem atuar energia mecânica sobre uma máquina, para realizar determinado trabalho, são chamados de atuadores - transdutores de saída que altera a grandeza controlada, ou transdutores eletrônicos que convertem energia elétrica em uma quantidade física, Rosário (2005). São os dispositivos de transmissão de potencia mecânica que fornecem 'músculo' para mover o braço do robô, Rosário (2005). Na prática, os atuadores podem ser utilizados na forma de motores, eletroímãs, freios, magnéticos, válvulas solenóides para acionamento de cilindros hidráulicos e pneumáticos dentre outros.
    • 11  Motor: nos sistemas de controle de posição e velocidade, nos robôs e máquinas industriais, impressoras plotters, cd players, vídeo cassetes e unidades de disco de computadores utilizam-se como atuadores motores elétricos, associados e transmissões por engrenagens ou correias. Na figura 1.10 um servo motor pode ser visto. Figura 1.10: Exemplo de servo motor. Fonte: http://www.alibaba.com/  Eletroímã: trata-se de um sistema de atuação usado em aplicações como transporte de peças de ferro ou níquel por guindaste ou por garras de robôs e travas magnéticas, em que são empregados eletroímãs. Um dos inconvenientes desse tipo de atuador se refere ao alto consumo de energia. Um eletroímã utilizado para a rotação de servo motores pode ser visto na figura 1.11. Figura 1.11: Exemplo de eletroímã presente em motores. Fonte: http://www.suzukionline.org/
    • 12  Válvula solenóide: as válvulas solenóides, figura 1.12, são frequentemente utilizadas em aplicações indústrias, por meio do controle de fluxo de líquido ou ar comprimido, que consiste em um ou mais caminhos que são interceptados por pistões, acoplados e eletroímãs, que liberam ou não fluxo, segundo Rosário (2005). Figura 1.12: Válvula solenóide para controle de água e gases. Fonte: http://www.nei.com.br/ Na área industrial, um atuador é de extrema importância na execução de uma tarefa, portanto é necessário que o mesmo seja adequadamente projetado e adaptado as condições do seu meio e área de trabalho. Segundo Rosário (2005), existe dois tipos de atuadores: garras e ferramentas. A garra é comparável a mão humana. Apesar de possuir limitações nos movimentos a uma faixa de operações, Rosário (2005). A grande demanda por esse tipo de atuador acarretou no desenvolvimento de garras que podem manusear objetos de diferentes tamanhos, formas e materiais. Podem ser classificadas como:
    • 13  Garra de dois dedos: O tipo mais comum de garra apresenta grande variedade. Os tipos de garra de dois dedos diferenciam-se entre si pelo tamanho e/ou pelo movimento dos dedos, como o movimento paralelo, ou o movimento de rotação. Na figura 1.13 uma garra de dois dedos. Figura 1.13: Ilustração de garra de dois dedos. Fonte: http://www.dee.feb.unesp.br/  Garra para objetos cilíndricos: Este tipo de garra consiste em dois dedos com vários semicírculos chanfrados, figura 1.14, que permitem segurar objetos cilíndricos de diâmetro diferentes. Figura 1.14:Ilustração de garra para objetos cilíndricos. Fonte: http://www.dee.feb.unesp.br/
    • 14  Garra para objetos frágeis: Garra própria para exercer certo grau de força durante a operação de segurar um corpo, sem causar danos de nenhuma ordem, é constituída de dois dedos flexíveis que se curvam para dentro, a fim de agarrar um objeto frágil, figura 1.15. Figura 1.15: Ilustração de garra para objetos frágeis. Fonte: http://www.dee.feb.unesp.br/  Garra articulada: É projetada para agarrar objetos de diferentes tamanhos e formas. Os vínculos são movimentados por pares de cabos: um cabo flexiona a articulação e o outro a estende. É exemplificada na figura 1.16 Figura 1.16: Ilustração de garra articulada. Fonte: http://www.dee.feb.unesp.br/
    • 15  Garra a vácuo e eletromagnética: A garra a vácuo, projetada para prender uma superfície lisa durante a ação do vácuo, possui ventosas de sucção conectadas à bomba de ar comprimido que prendem superfícies como chapas metálicas e caixas de papelão, figura 1.17. Figura 1.17: Ilustração de garra a vácuo e eletromagnética. Fonte: http://www.dee.feb.unesp.br/ 1.3 FUNCIONAMENTO De acordo com Brasil (2005), a grande maioria dos robôs é acionada por meio de servo - motores elétricos. O acionamento elétrico, ao contrário do pneumático ou hidráulico, é mais facilmente controlável e oferece maior precisão de posicionamento. Os robôs podem apresentar vários movimentos. Cada movimento, realizado por meio de um servo motor elétrico, corresponde ao que chamamos de grau de liberdade. Os graus de liberdade de um robô podem estar associados ao corpo ou ao punho.
    • 16 Considere-se o sistema robótico mostrado na Figura 1.18: Figura 1.18: Ilustração de braço mecânico. Fonte: Apostila Senai de Automação. (s.d.) O robô acima apresenta cinco graus de liberdade: três graus de liberdade no corpo e dois graus de liberdade no punho. Os graus de liberdade do corpo do robô definem a posição do centro da flange do punho. Assim, quando movemos os eixos A, B e C do robô, cada qual num determinado ângulo, a posição do centro da flange fica perfeitamente definida. Dependendo do número de graus de liberdade, a estrutura mecânica de um robô pode ser mais ou menos complexa. Ela consiste basicamente de peças que se unem umas às outras por articulações ou juntas. O acionamento de cada uma das juntas é realizado por meio de um servo motor elétrico e de sistemas de transmissão mecânica que variam em função da configuração do robô. Ainda de acordo com o Brasil (2005), controlar os movimentos de um robô consiste, basicamente, em fazer com que seus motores girem, associados a cada uma das juntas da estrutura do robô, de modo que o órgão terminal
    • 17 atinja posição e orientação desejadas. O controle é complicado, pois envolve aspectos mecânicos, eletrônicos e de computação. Não se trata apenas de um ponto, mas de uma série deles, formando uma trajetória a ser percorrida pelo órgão terminal. E a cada ponto o órgão terminal pode apresentar uma orientação diferente. O sistema de controle ainda deve considerar a massa que está sendo manuseada pelo robô, as acelerações e desacelerações, os atritos entre os componentes mecânicos. Os desafios principais no problema do controle do movimento são a complexidade desta dinâmica, resultante da não-linearidade, dos graus de liberdade múltipla e a incerteza, tanto paramétrica quanto dinâmica. A incerteza paramétrica advém do conhecimento impreciso dos parâmetros de inércia, enquanto a incerteza dinâmica é proveniente da flexibilidade dos links e articulações, da dinâmica dos atuadores, da fricção, do ruído dos sensores, e da dinâmica desconhecida do ambiente. 1.4 LEGO O kit Lego Mindstorms NXT 2.0, permite uma montagem mais fácil, sem necessidades de conhecimentos técnicos aprofundados para a montagem de um robô. Outra vantagem do Kit é a compatibilidade com o software Labview, que já foi aqui descrito. O kit possui um terminal com um microprocessador ARM7 de 32 bits, com suporte a Bluetooth, uma porta USB 2.0, quatro entradas (para conectar os sensores) e três saídas (para conectar os motores). Três servo motores e quatro sensores, sendo estes: dois sensores de toque, um sensor ultrassônico e um sensor de cores, conforme mostrado na figura 3.1. Figura 3.1: Componentes do kit Lego Mindstorms. Fonte: Lego Minsdstorm.
    • 18 CAPÍTULO 2 COMPUTAÇÃO AFETIVA 2.1 INTRODUÇÃO O objetivo deste capítulo será mostrar a existência de sistemas robóticos sociáveis, tais como cooperativo e competitivo, desta forma especificando as diferenças dos mais diversos tipos de robôs presente no dia-a-dia. Será descrito como um robô sociável se comporta, quais os pontos principais que o tornam sociável. 2.2 FUNDAMENTOS DA COMPUTAÇÃO AFETIVA De acordo com Picard (2000), a visão que se tem das máquinas, atualmente, é a de que são somente objetos que executam tarefas. Neste contexto, surge a Computação Afetiva, com o objetivo de tornar os usuários e as máquinas mais próximos. Isto seria alcançado tornando as máquinas capazes de compreender melhor os usuários, tornando-as capazes de analisar suas rotinas, preferências e, até mesmo, emoções. Assim, diz Picard (2000), a máquina estaria se aproximando do usuário ao conhecê-lo melhor, e isto possibilitaria que ela pudesse adaptar sua interface para que o usuário a compreendesse melhor também. Com isto, seria criado um vínculo entre os dois, tornando possível que a imagem da máquina para o usuário mude. Um exemplo típico é o do computador “HAL 9000” do filme 2001: A Space Odyssey (1968), onde a máquina interage com os humanos, percebendo suas reações e, no final, teme ser desligada, uma emoção típica
    • 19 de seres vivos, pois acarretaria sua morte. Outro exemplo que pode ser dado seria a personagem "Andrew" do filme Bicentennial Man (1999), do qual o próprio robô, por alguma anomalia gerada em sua construção, desenvolve personalidade própria ao ponto de compreender e tentar torna-se quase um ser vivo.Há mais exemplos que pode-se oferecer de Computação Afetiva no mundo da ficção cientifica, porém no mundo real, a humanidade ainda não pode criar algo similar a um “HAL-9000”. Segundo Lockemann (2006), um robô pode ser visto como um conjunto de sensores associados com motores trabalhando em conjunto para atingir uma meta ou objetivo. Porém, Computação Afetiva, não é somente ligada a robôs afetivos. Embora seja uma Computação Afetiva que abrangente e intrigante, as pesquisas nesta área são menores em relação à outras linhas de pesquisa na área de Computação. Este projeto irá se restringir em uma pequena parte desta área. Embora, modelos computacionais possam ser implementados, testados e analisados em robôs em ambientes sociais controlados (Breazel,2002), e fora de locais não controlados para testes existem problemas, em grande parte associados à parte de hardware, para a capacidade e complexidade de armazenar as informações do meio em que se encontra. Contudo o verdadeiro desafio nesta área é o poder de tomar decisões baseadas em experiências já ocorridas, facilitando seu aprendizado, embora essa linha de pesquisa seja chamada de Computação Cognitiva. 2.3 EXEMPLOS DE SISTEMAS ROBÓTICOS AFETIVOS Na área de sistemas robóticos afetivos se tem uma quantidade razoavelmente grande de exemplos que se pode ser citados, um dos exemplos que mais conhecidos fora da área acadêmica seria o Tamagotchi, também
    • 20 conhecido por muitos como "bichinho virtual", por seu tamanho reduzido ele era semelhante a um chaveiro. No Tamagotchi, o usuário era estimulado a cuidar dele fazendo com que ele fosse alimentando, brincando, educando, vacinando, dentre outras funções que possuí. O usuário com poucos botões era capaz de executar diversas funções (Terra, 2010). Um dos pontos mais interessantes do Tamagotchi é que mesmo ele sendo virtual, ele pode morrer caso o usuário não cuide dele, criando assim um laço afetivo entre o usuário e a máquina, desprendendo o usuário da idéia de que por ser algo virtual, associado a uma máquina, ele não possa morrer. Atualmente, tem-se à escolha, ao menos, 10 bichos virtuais disponíveis ao mercado do Brasil. Não existe atualmente um que seja o melhor entre todos, devido a grande quantidade fabrica e por empresas diversas, variando apenas alguns aspectos durante sua vida virtual (Terra, 2010). O robô Furby, que pode ser visto na figura 2.1 na próxima página, possui habilidades afetivas, o robô cujo design era simples para ser infantil, o qual conversa e joga por algum tempo e, aí dorme, como se estivesse cansado. Isso fica mais aparente ao colocar dois Furby's juntos: eles irão interagir através de seus sensores infravermelhos. Eles parecem ter uma mente própria. Eles mesmos decidem quando irão acordar, falar e, depois, ir dormir (Tiger Eletronics, s.d). Figura 2.1: Robô Furby. Fonte: http://www.eltiradero.net
    • 21 O cachorro-robô Aibo, figura 2.2, também é capaz de expressar emoções. Com sensor de toque, o robô se comporta de maneira alegre quando recebe carinho de tal maneira que se faz acreditar que ele realmente responde a estímulos, tem relação afetiva com o dono, mas na verdade não tem, o pequeno Aibo apenas responde a estímulos (ORIENTACAOUNIVIMA2008,2010). O Aibo é equipado com habilidades de aprendizado e crescimento adaptativas que permite que cada unidade tenha uma personalidade única, com o comportamento moldado por seu dono (Sony,2010). Figura 2.2: Robô Aibo. Fonte: http://www.eltiradero.net/ O ASIMO,figura 2.3, foi projetado para auxiliar humanos em suas tarefas. Os sucessores do ASIMO podem ajudar a lavar a roupa e os pratos, ajudar a cuidar dos idosos, se assegurar que criança cheguem a escola seguras etc. muitas dessas tarefas envolve a cooperação entre os humanos e os robôs que os ajudam. Em seu estudo Mutlu, Osman, Forlizzi, etc al., (2010) tentaram descobrir como esta cooperação e competição com os robôs mudam a percepção das pessoas para com os mesmo, assim como suas experiências para com tais. O estudo mostrou que as experiências cooperativas com o ASIMO são mais desejáveis que as competitivas em situações que requerem aceitação e conveniência. Já em tarefas como ajudar um idoso a manter sua rotina de exercícios.
    • 22 Figura 2.3: Robô ASIMO em funcionamento. Fonte: http://www.newlaunches.com Um dos primeiros modelos reais de sistemas afetivos foi o robô Kismet, figura 2.4, construído em 1990 no laboratório de Inteligência Artificial do MIT. Breazeal (2002), explica que foram implementadas uma variedade de competências "infantis" nele, através da adaptação de modelos e teorias dos campos de psicologia, desenvolvimento cognitivo e etnologia. Funciona por meio de sensores de auditivos, visuais e de proximidade, dos quais o robô Kismet pode responder em tempo real as ligações afetivas entre ele e a pessoa com a qual interage. Os sensores visuais dele incluem câmeras que movimentam e controlam sua visão e a sincronizam com seus olhos como os de humanos, podendo assim também reconhecer algo que ele considere como importante. Figura 2.4: Robô Kismet em demonstração. Fonte: http://www.about-robots.com/
    • 23 Um robô muito famoso é o iCub,figura 2.5, segundo seus desenvolvedores o iCub é parte de um projeto da EU Robot Cup. Ele possui 53 motores que movimentam sua cabeça, cintura, braços, mãos e pés. Ele pode ver e ouvir e possui senso de proprioception (configuração do próprio corpo) e movimento (utilizando acelerômetros e giroscópios. Figura 2.5: Robô iCub. Fonte: http://www.robotcub.org/ De acordo com a RobotCup o objetivo por tráz do iCub é o estudo da cognição através da implementação de um robô humanóide do tamanho de uma criança de 3.5 anos. A arquitetura cognitiva do iCub é resultado de um detalhado processo de design fundamentada no desenvolvimento psicológico e neurológico de humanos. O propósito imediato do desenvolvimento da arquitetura cognitiva é criar o núcleo da infra-estrutura do software do iCub, assim ele será capaz de exibir um grupo de comportamentos alvo para uma investigação empírica. A figura 2.6 abaixo mostra a arquitetura cognitiva do iCub. Nela é possivel perceber os caminhos que os dados colotados tomam, e quais as pertes responsaveis pelo controle da visão, locomoção e habilidades motoras.
    • 24 Figura 2.6: Arquitetura cognitiva do iCub. Fonte: http://eris.liralab.it 2.4 PARADIGMAS DA COMPUTAÇÃO AFETIVA Uma das dificuldades atuais para a interação humano-máquina se encontra na aparência da máquina, desde a aparência física externa até parte interna mecatrônica. Porém esta facilidade não pode ser vista ainda no robô desenvolvido pela Sony chamado Aibo, ele foi desenvolvido como a forma de um animal mecatrônico, similar a um cachorro, do qual por sua forma animal o usuário cria vínculos afetivos mais facilmente devido a sua forma animal do que por seu algoritmo. O Eyepet é uma criatura virtual desenvolvida pela Sony PlayStation com o intuito de ser um virtual pet. Ele permite a interação com o usuário através de cartões de realidade aumentada fazendo com que os objetos do cartão entrem
    • 25 no "mundo" do Eyepet. É possível acariciá-lo, alimentá-lo e escolher suas roupas, acessórios e estilos de pelo. (Sony, 2009) Também é possível verificar o bem estar e a felicidade do Eyepet. É possível também tirar fotografias e gravar vídeos. É possível interagir com ele através de acessórios do PlayStation@Move como desenhar com o controle (Sony, 2009). 2.5 DESAFIO COMPUTACIONAL Segundo Picard (2000), há um problema na área de Computação Afetiva, que seria a diferenciação de expressar certo sentimento e realmente senti-lo. Um dos problemas enfrentados parte da área de compreender emoções, é muito fácil reconhecer o que uma pessoa sente quando está brava com o computador, é algo que pode ser detectado sem muita dificuldade. Mas e quanto a detectar o que a pessoa do seu lado esta sentindo. Nisso a dificuldade da tarefa já aumenta, pois às vezes as pessoas não conseguem manipular seus próprios estados emocionais, às vezes não se sabe o que nós mesmos estamos sentindo. Em seu trabalho Picard (2000), relata ter encontrado oito emoções cujo nível de reconhecimento estaria mais alto, a partir disso algoritmo de reconhecimento de padrões com 81% de exatidão foram desenvolvidos, ao invés do 12,5% previsto de uma classificação aleatória.
    • 26 CAPÍTULO 3 COOPERAÇÃO AFETIVA EM SISTEMAS ROBÓTICOS 3.1 INTRODUÇÃO Neste capitulo, serão apresentadas as ferramentas utilizadas no desenvolvimento do trabalho, sua proposta, assim como será explicado os passos do desenvolvimento do robô utilizado, sua construção, as modificações feitas com o objetivo de adaptá-lo a proposta apresentada, a construção e evolução dos modelos de comportamento criados, chegando ao modelo definitivo construído utilizando redes de Petri, explicar como o robô irá realizar as verificações seguindo este modelo e como estas verificações irão levar ações, e finalmente chegando a implementação deste modelo utilizando o software Labview. 3.2 PROPOSTA DO TRABALHO Este trabalho tem como proposta o desenvolvimento de dois robôs capazes de executar um ataque coordenado contra um alvo determinado presente em seu ambiente de atuação. Os robôs necessitam saber interagir com o ambiente onde irão atuar antes de poder executar tarefas nele, assim eles atuaram em um ambiente determinístico para não sofrerem interferências externas do ambiente. Mesmo atuando em um ambiente determinístico eles necessitam de autonomia neste ambiente, para isso terão de ser capazes de desviar de obstáculos presentes neste ambiente, onde os robôs irão ter que detectar objetos que estarão em
    • 27 seu caminho, e então desviar seu trajeto, assim evitando a colisão com o obstáculo. Outra característica dos robôs, é que ambos estarão constantemente patrulhando o ambiente à procura de objetos. Uma rotina de patrulha será implementada para que os robôs possam cobrir todo o ambiente onde atuam eficientemente. Uma vez que um dos robôs tiver encontrado o alvo, este irá avisar ao outro, sobre a presença do alvo. Ao receber a mensagem o robô deverá entrar em um estado de procura para localizar o alvo, seu comportamento irá mudar e ele permanecerá neste estado até encontrar o alvo. Uma vez que o robô encontra o alvo ele irá enviar uma mensagem ao outro robô. Quando ambos os robôs tiverem encontrado o alvo, eles irão se certificar de que estão a uma distância suficiente para um ataque, e então trocaram mensagens para poder atacar ao mesmo tempo. Após as realização do ataque será realizada uma confirmação do sucesso na eliminação do alvo e os robôs irão retornar ao estado de patrulha. 3.3 CONSTRUÇÃO DOS ROBÔS Para a realização deste projeto serão utilizadas duas ferramentas. O software Labview da National Instruments e dois kit’s de Lego Mindstorms NXT 2.0 da Lego. Cada robô foi construído utilizando do modelo de Robogator do Lego Mindstorm NXT 2.0, que é um robô semelhante a um crocodilo. Foram seguidas as instruções para a construção de tal modelo, estas se encontram no software da lego que acompanha o kit. A seguir encontra se as ilustrações das instruções da montagem do robô. Um exemplo de como foi montada a mandíbula do crocodilo para que o robô pudesse morder o seu alvo seguindo as instruções determinadas é mostrado na figura 3.2, logo abaixo:
    • 28 Figura 3.2: Instrução de Montagem do Robô. Fonte: Lego Mindstorms Após ter o modelo construído foram necessárias alterações para que o robô se adequasse a proposta do trabalho. Uma comparação entre os modelos utilizados pode ser vista na figura 3.3, à esquerda o modelo normal montado e à direita o modelo modificado. [Normal] [Modiifcado] Figura 3.3: Comparação entre o robô normal e o modificado.
    • 29 Foi necessário adicionar um sensor de cor, para desta forma ele se localizar de frente ao alvo,modificação ilustradas na figura 3.4, à esquerda o modelo normal montado e à direita o modelo modificado: [Normal] [Modiifcado] Figura 3.4: Diferença entre os o uso modelo original para o da aplicação. Foi necessário elevar a cabeça do Robô para que o sensor de cor não tocasse no chão ao abrir a boca, figura 3.5: [Normal] [Modiifcado] Figura 3.5: Comparação entre os robôs em relação à altura das cabeças. Foi necessário retirar os sensores de toque da parte de trás, pois estes não seriam mais necessários para o projeto, figura 3.6, à esquerda o modelo normal montado e à direita o modelo modificado:
    • 30 [Normal] [Modiifcado] Figura 3.6: Retirada do sensor de toque. Colocar um sensor de toque para verificar a abertura da boca, figura 3.7, nas figuras (A e C) o robô com a boca fechada e o sensor pressionado, e nas figuras (B e D) o robô com a boca aberta e o sensor não mais pressionado: Figura 3.7: Comparação entre o robô com o sensor de toque com a boca aberta e fechada. C) D) A) B)
    • 31 3.3.1 MODELO ROBÓTICO AFETIVO Para a construção do modelo de robótica afetiva, foi iniciado por meio da construção de Autômato Finito Determinístico (AFD), para atender os aspectos gerais da aplicação, tais como definição dos escopos, quantidade de agentes presentes tanto na simulação como na aplicação. Após a construção do modelo de Autômato Finito Determinístico, foi iniciada a construção da Rede de Petri, nesta etapa traduzindo o que havia sido definido na anterior para a Rede de Petri, a fim de realizar simulações para garantir o funcionamento dos modelos de agente. A simulação é uma parte importante desta etapa de construção do modelo, pois permite detectar erros de especificação antes da implementação. A rede de Petri foi modelada e simulada usando dois softwares para garantir a interinidade do modelo de agentes, sendo usado o Visual Petri 1.2 e o Workflow Petri Net Designer 2.6. Após a construção de uma Rede de Petri, as simulações foram realizadas com o intuito de evitar deadlocks na aplicação final. A rede de petri criada pode ser vista na figura 3.8. Na rede de Petri as simulações permitem inferências sobre os sistemas modelados sem a necessidade de construí-los, quando eles são ainda apenas propostas de novos sistemas; sem a necessidade de perturbá-los, quando seu custo operacional é alto ou os seus requisitos de segurança impedem ou desaconselham experimentos; e sem o risco de destruí-los, quando se tem que definir os limites, (Marranghello, 2005).
    • 32 Figura 3.8: Rede de Petri utilizada para o projeto. Ao todo os robôs irão realizar seis tipos básicos de verificações por meio de seus sensores ultrassônico, cores e toque e Bluetooth: 1. Objeto Detectado: Através do sensor ultrassônico será definido se existe um objeto no caminho do robô e este será tido como um obstáculo a ser ultrapassado. 2. Inimigo Detectado: Através do sensor ultrassônico será definido se há um objeto no caminho do robô e após uma confirmação positiva do sensor de cor, o objeto será tido como um alvo a ser atacado. 3. Caminho Livre: Após a tentativa de ultrapassar o obstáculo detectado o robô utilizará o sensor ultrassônico para verificar se o caminho está livre. 4. Mensagem Recebida: Verifica se o outro robô enviou uma mensagem alertando sobre o alvo.
    • 33 5. Outro Robô Pronto: Verifica se o outro robô enviou uma mensagem avisando que encontrou o alvo. 6. Inimigo Morto: Através do sensor de toque verifica se o ataque conseguiu atingir o inimigo. Os estados pelos quais os robôs irão transitar são os seguintes:  Patrulha: Enquanto estiver neste estado o robô irá andar pelo ambiente verificando se existem obstáculos, ou alvos em seu caminho, assim como verificando se recebe uma mensagem de outro robô alertando sobre um alvo no ambiente.  Desvio: O robô entra neste estado ao detectar um obstáculo em seu caminho. E o robô irá permanecer neste estado enquanto o sensor ultrassônico continuar captando um obstáculo no caminho. Neste estado o robô irá tentar contornar o obstáculo, até não haver mais um obstáculo em seu caminho.  Enviar Mensagem: O robô entra neste estado após encontrar o alvo, o robô irá enviar uma mensagem para o outro via Bluetooth, item presente dentro do kit Lego Mindstorms NXT 2.0. O robô só sairá deste estado ao receber uma mensagem de confirmação do outro.  Procura: O robô entra neste estado ao receber a mensagem de que há um obstáculo em seu ambiente. Neste estado o robô irá andar mais rápido para localizar o alvo, para isto a potencia do motor será aumentada. Ele permanecerá neste estado até encontrar o alvo.  Posicionando: O robô entra neste estado após encontrar o alvo. Neste estado o robô deverá estar posicionado ao alcance do alvo, para poder lançar um ataque efetivo. Ele enviará uma mensagem avisando que está pronto para o ataque, e então permanecerá imóvel até receber a mensagem do outro robô avisando que se encontra posicionado também.
    • 34  Ataque Coletivo: Os robôs entram nesse estado após a confirmação de que ambos localizarem o alvo. Neste estado os robôs irão trocar mensagens para poderem atacar o alvo ao mesmo tempo. Ele permanecerá neste estado até que o alvo seja considerado morto. 3.3.2 IMPLEMENTAÇÃO O software da National Instruments chamado Labview será utilizado para desenvolver o software do robô neste projeto. Por possuir um ambiente de programação gráfica muito utilizada ao redor do mundo, com o desenvolvimento elegante de medição, testes e sistemas de controle intuitivos do quais se assemelham a um fluxograma. Visto que o software apresenta um modulo para o Lego Mindstroms e possui um alto grau de integração além de uma rica biblioteca de analise e visualizações de dados, muito utilizado no ramo industrial, principalmente na área de automação. O motivo para a alta integração entre o Labview e o lego vem do fato da National Instruments ser a responsável pela fabricação do software da lego, por este motivo existe o modulo NXT para o Labview. Na aplicação por padronização usado no Labview, as portas para movimentação de motores, foram previamente definidas:  Porta A: Controle de movimento da boca;  Porta B: Controle de movimentação da pata esquerda;  Porta C: Controle de movimentação da pata direita; E as portas utilizadas para os sensores foram:  Porta 1: Sensor de toque;  Porta 2: Porta não utilizada no projeto;  Porta 3: Sensor de cor e luz;  Porta 4: Sensor ultrassônico;
    • 35 . Muitos dos estados utilizados da Rede de Petri por serem utilizados frequentemente, foram adotados para criar subVI’s, com o intuito de deixar a aplicação final mais limpa em termos de visualização. Para os sensores de cor, devido a sua limitação física de reconhecimento de cores, permitindo que apenas um número pequeno de cores possam ser detectadas. Para melhor monitoramento das entradas e saídas recebidas pelo robô o painel de controle é necessário, este pode ser encontrado na figura 3.9. Nele foram dispostos itens para melhor visualização das variáveis envolvidas. Possui um Wave Chart e um Meter para medir as inferências do sensor ultrassônico. Três LEDs para o monitoramento das cores captadas. Um painel para exibir as mensagens recebidas, e finalmente, um botão para acionar a parada do robô, fazendo com que o programa seja abortado. Figura 3.9: Painel de Controle. Na figura 3.10 encontra-se o programa principal do robô. Nesta tela existe o sensor de som enviando informações para os instrumentos do painel e enviando uma entrada para o estado Patrulha. Este gera saídas como a mensagem recebida, e a resposta dos LEDs. Relacionando ao painel da figura 3.9, Meter e o Wave estão ligados ao valor captado pelo sensor ultrassônico,
    • 36 enquanto os LEDs estão ligados a saída do estado Patrulha. Figura 3.10: Aplicação Final. Figura 3.11: Estado de Patrulha. Como já foi explicado o estado de Patrulha recebe um valor do sensor ultrassônico, um valor numérico, figura 3.11. Este valor define a distancia do objeto detectado para com o robô. A figura 3.12 mostra o estado de patrulha onde, o valor numérico recebido, representado por Numeric, é comparado ao valor 60, e se este valor Numeric não for maior que 60 o caso se encaminha o caso True, isto ocorre para permitir que o robô se aproxime mais do objeto detectado, pois para que o sensor de cor funcione corretamente ao identificar as cores captadas é necessário que o robô se aproxime até ficar uma distancia de pelo menos dez centímetros do objeto. Uma vez esta condição sendo satisfeita, o sensor de cor começa a funcionar. Ao detectar a cor vermelha (número 5), indicando que o robô encontrou o alvo, o robô entra no caso 5 e vai para o estado de Posicionado. Isto pode ser observado na figura 3.12 logo abaixo.
    • 37 Figura 3.12: Estado de Patrulha, chegada ao estado de Posicionado. Caso a cor detectada não esteja especificada nas condições, o robô irá para o estado de Desvio, mostrado na figura 3.13. Figura 3.13: Caso de cor detectada default. Caso a distância do objeto seja maior que 60 centímetros, o robô irá verificar se recebeu alguma mensagem, caso a mensagem recebida seja "Posicionado", indicando que o outro robô já encontrou o alvo, então o robô irá parar seu movimento, tocar uma musica para sinalizar o recebimento da mensagem, e então entrar no estado de Procura. Tal trajetória pode ser vista na figura 3.14.
    • 38 Figura 3.14: Recebimento da mensagem. O estado de Posicionado gera apenas uma saída, que é a confirmação de que a cor vermelha está sendo captada na figura 3.15. Figura 3.15: Estado de Posicionado. No estado de Posicionado o robô primeiramente irá parar de se locomover, após isto ele enviará uma mensagem ao outro indicando que o alvo foi encontrado, irá sinalizar o envio da mensagem através de uma sequência de notas musicais. Tendo isto sido feito, ele vai entrar em um laço onde irá esperar e checar por mensagens até receber a confirmação do outro robô de ter encontrado o alvo também. As condições de saída deste laço são: ou o robô não detectar a cor vermelha mais, indicando que o alvo não está mais à sua frente, ou o robô permanecer com a boca aberta por mais de dois segundos, indicando que ele está tentando morder algo, e assim o ataque podendo ser considerado um sucesso, figura 3,16.
    • 39 Figura 3.16: Estado de Posicionado. O estado de Procura também gera apenas a saída de confirmação na continuidade da captação da cor vermelha,figura 3.17. Figura 3.17: Estado de Procura. O estado de Procura é similar ao estado de Patrulha. Uma das diferenças entre os dois estados é o fato do estado de Procura enviar a mensagem de pronto ao outro. A razão para isto é o fato de que para o robô se encontrar no estado de Procura o outro robô já tem de ter encontrado o alvo, figura 3.18.
    • 40 Figura 3.18: Estado de Procura, caso de detecção da cor vermelha. 3.4 TESTES E RESULTADOS OBTIDOS Os robôs devem ser capazes de se movimentar pelo ambiente sem maiores dificuldades ultrapassando os obstáculos encontrados e sendo capazes de detectar alvos dentro do ambiente. Devem ser capazes de uma vez tendo detectado o alvo, o atacar e verificar se o ataque surtiu efeito. Também devem ser capazes de se comunicar remotamente sem a ocorrência de erros na transmissão das mensagens. Em complemento, uma vez detectado o alvo os robôs devem ser capazes de atacá-lo simultaneamente e aferir se o ataque de algum deles teve resultado positivo. Os testes para avaliar cada uma destas rotinas acima descritas foram realizados durante cada etapa do trabalho. Foram divididos da seguinte maneira conforme as etapas de desenvolvimento do robô: Teste de Desvio, Teste de Verificação de Alvo, Teste de Ataque e Verificação de Efeito, Teste de Comunicação e Teste de Sincronia de Ataque.
    • 41 3.4.1 TESTES DE DESVIO No Teste de Desvio o robô foi colocado em um ambiente onde se encontravam obstáculos, e o robô deveria percorrer o ambiente sem que os obstáculos o impedissem de continuar. Foram realizados dois tipos diferentes de testes nessa etapa. No primeiro o robô foi colocado em um ambiente onde somente as paredes o impediam de prosseguir, figura 3.19. Figura 3.19: Ambiente onde os testes correram. Neste teste foi constatada a competência do robô ao se locomover sem colidir com nenhuma das paredes, figuras 3.20. Na sequência de imagens o robô localiza o obstáculo a sua frente, figuras (A e B) e logo em seguida desvia do obstáculo detectado, figuras (C e D).
    • 42 Figura 3.20: Sequência onde o robô desvia do obstáculo. O segundo ambiente, além de possuir paredes também possuía objetos espalhados que dificultavam o caminho do robô, figura 3.21. Neste teste foram detectados alguns limites que deveriam ser respeitados, como a disposição dos objetos. Os objetos devem ser colocados a uma distancia mínima uns dos outros assim como das paredes afim de evitar colisões causadas pela ausência da detecção dos objetos,figura 3.23, esta distância corresponde à medida do robô e é necessária devido ao raio limitado de percepção do sensor ultrassônico, localizado a frente do robô, que acaba não conseguindo detectar objetos fora deste raio, fazendo com que no pior caso o robô consiga colidir com um objeto encontrado em sua extremidade oposta, sendo esta a razão para a distância mínima ser a medida do robô. D)C) A) B)
    • 43 Com este teste foi possível verificar, além de não ser capaz de detectar objetos imediatamente à sua frente, o ângulo do sensor, que se encontra inclinado, não permite que ele detecte objetos abaixo de um certo tamanho, este tamanho sendo terminado pelo ângulo e distância do robô em relação ao objeto. Figura 3.21: Ambiente com obstáculos utilizado no teste. A) B)
    • 44 Figura 3.22: Sequência de imagens do robô ao executar o desvio do obstáculo. Figura 3.23: Robô colidindo com o obstáculo. C) D) E) F)
    • 45 3.4.2 TESTE DE VERIFICAÇÃO DE ALVO O Teste de Verificação de Alvo foi similar ao segundo Teste de Desvio, o mesmo ambiente com objetos espalhados foi utilizado, com a diferença de que um dos objetos do ambiente era de cor diferente e deveria ser reconhecido pelo robô como alvo, este reconhecimento deverá ser feito através do sensor de cor, figura 3.24. Figura 3.24: Ambiente com obstáculos e com o alvo utilizado no teste. Durante o teste foi utilizado um objeto cilíndrico mas logo foi descartado pois os testes mostraram que o angulo de incidência do robô em relação ao objeto dificultava a detecção da cor, pois somente em ângulos específicos a cor era corretamente identificada. Então um objeto com a base cúbica foi utilizado para facilitar a detecção. O resultado do teste foi satisfatório tendo o robô corretamente identificado o objeto com alvo ao entrar no alcance do sensor de cor,figuras 3.25 e 3.26.
    • 46 Figura 3.25: Sequência onde o robô anda pelo ambiente. Figura 3.26: Sequência de verificação do alvo. A) B) C) D)
    • 47 3.4.3 TESTE DE ATAQUE E VERIFICAÇÃO DE EFEITO Neste teste, a capacidade do robô de atacar o alvo e verificar se o ataque surtiu efeito foi testada. Para o teste, um objeto com uma parte sobressalente teve de ser montado. Uma série de objetos foi testada até chegar ao objeto que seria utilizado no teste. O objeto utilizado tinha de ter essa forma e medidas especificas, para que ao tentar morder o objeto, o robô conseguisse morder de forma eficaz a parte sobressalente. A cor do objeto utilizado foi definida como verde para que o robô consiga atacá-lo sozinho, o objeto pode ser visto na figura 3.27. Figura 3.27: Foto do objeto utilizado como alvo. O robô deveria ser capaz de morder o pedaço do objeto de forma a impedir que sua boca se fechasse por estar segurando a parte do objeto entre os dentes, se o robô permanecesse sem conseguir fechar a boca por cinco segundos o robô reconheceria que o ataque havia sido bem sucedido.
    • 48 Figura 3.28: Sequência onde o objeto encontrado é o alvo. Figura 3.29: Sequência onde o robô ataca o alvo. O teste teve resultado positivo, com o robô conseguindo morder o objeto e reconhecendo que o ataque havia sido bem sucedido, figuras 3.28 e 3.29. 3.4.4 TESTE DE COMUNICAÇÃO No teste de comunicação o desafio era conseguir fazer com que os dois terminais, figura 3.30, dos robôs trocassem mensagens via Bluetooth, de forma a um confirmar o recebimento da mensagem do outro. Para este teste, foi necessário entender como a comunicação entre os terminais funciona. Nesta comunicação, um dos terminais deverá se conectar ao outro, o terminal que requisitou está conexão será o Host e o outro será o
    • 49 Client.Também foi necessário desenvolver um programa para realizar as trocas de mensagem,este é representado nas figuras 3.31 e 3.32. Figura 3.31: Programa de comunicação do Host com o Client. Figura 3.32: Programa de comunicação do Client com o Host.
    • 50 Neste teste é necessário que um dos terminais se conecte ao outro para iniciar a conexão, tendo isto sido feito o programa pode ser executado. Neste programa um dos terminais teria o botão "enter" apertado, o terminal cujo botão foi apertado envia uma mensagem para o outro. O segundo terminal então deveria mostrar a mensagem na tela e enviar uma mensagem de confirmação para o primeiro. O primeiro terminal ao receber a confirmação deveria exibir uma mensagem na tela e enviar uma confirmação para o segundo. O segundo ao receber a confirmação também exibiria uma mensagem e o teste teria sido concluído. Figura 3.33: Sequência de envio de mensagem. O teste teve resultado positivo com as mensagens tendo sido enviadas e recebidas corretamente nos dois casos, no caso do Host começar a troca de mensagens e no caso do Client começar, a figura 3.33, mostra o envio da mensagem, em (A) o primeiro terminal envia a mensagem ao se pressionar o botão, em (B) o segundo terminal exibe na tela uma mensagem indicando que A) B) C) D)
    • 51 a mensagem foi recebida, em (C) o segundo terminal envia uma mensagem de confirmação do recebimento, em (D) a mensagem de confirmação do envio é exibida. O teste também mostrou como a utilização do Bluetooth pelos terminais acabou por gastar a bateria mais rapidamente. 3.4.5 TESTE DE SINCRONISMO DE ATAQUES Neste Teste foram utilizados os modelos criados nos testes anteriores. O teste consiste garantir que quando um dos robôs encontre o alvo, comunique isto ao outro e permaneça em sua posição até receber a confirmação pelo segundo robô de que também está posicionado, isto acontecendo os dois robôs deverão atacar ao mesmo tempo, até que um deles confirme ter acertado o alvo corretamente. Neste teste os dois robôs foram colocados no ambiente de teste utilizado nos testes passados, figura 3.34, e permaneceram percorrendo o ambiente até localizarem o alvo e o atacarem com sucesso figuras 3.35 e 3.36. Figura 3.34: Foto do ambiente com os dois robôs. O teste foi bem sucedido com os robôs tendo acertado o alvo e confirmado o resultado positivo da ação, figura 3.37.
    • 52 Figura 3.35: Sequência do primeiro robô encontrando o alvo. Figura 3.36: Sequência do segundo robô encontrando o alvo. A) B) C) D)
    • 53 Figura 3.37: Foto dos robôs atacando o alvo.
    • 54 CAPÍTULO 4 CONCLUSÃO E TRABALHOS FUTUROS A Robótica Afetiva é capaz de mudar a percepção de que as pessoas possuem em relação às máquinas, realizando um papel importante na área da iteração humano-máquina, fornecendo uma interface completamente diferente ao que o usuário final está habituado em interagir. Através da Robótica Afetiva a área da Computação Afetiva é implantada, com modelos de agentes robóticos para atuar de maneira pré-determinada ou autônoma. Os sistemas robóticos são máquinas com a capacidade de utilizar de automação para acatar objetivos declarados pelo usuário ou por suas configurações. Estes sistemas podem ser capazes de receber informações, processá-las, tomar decisões, realizar verificações e gerar ações no meio físico. No decorrer do levantamento teórico realizado para o trabalho, foram estudos modelos de sistemas robóticos e de sistemas afetivos. Essa pesquisa levou a definição do modelo que foi utilizado no durante o trabalho, Através desta pesquisa cientifica, foi possível a criação de um sistema robótico, que atuou como um agente sociável. Esse agente conseguiu realizar um notificação ao outro sistema robótico, de maneira eficiente, sincronizando o momento de ambos atacarem sincronizados e possuírem êxito total em seu ataque. Desta forma, o algoritmo possuiu uma estratégia baseada na precisão de um ataque único para máximo aproveitamento de ataque do caso aplicado em um enxame. Porem, por limitações físicas presente dentro do kit do Lego Mindstorms NXT 2.0,tais como a disparidade entre o escopo e o sensor do ultrassônico e o de cor, fazendo com que o agente tivesse que se aproximar demasiadamente a
    • 55 fim de receber uma leitura precisa para identificar e desferir o ataque. Em termos de facilidade poderia ser melhorado o modelo de pareamento entre os robôs presente dentro do modulo da Lego no Labview, possibilitando a que a conexão entre os terminais possa ser feito dentro do programa ao invés de manualmente antes da execução da aplicação. Como sugestões de trabalho futuros, a possibilidade de explorar novos tipos diferentes de hardware, microprocessadores, servo motores e sensores, estes de preferência voltados somente para as funções que serão exercidas para a aplicação final. De forma a baratear o processo de construção através da eliminação de partes do hardware, que não são utilizadas no modelo robótico final. Nas possíveis melhorias na parte de hardware, a utilização de componentes que possibilitem meios de comunicação que economizem energia assim como o padrão de comunicação ZigBee, seria o mais recomendado para a melhoria do projeto, para a construção de um projeto que envolva comunicação a curta distancia sem fios, a fim de economizar energia, visto que em alguns poucos testes houve um gasto excessivo da vida útil das baterias, Acrescentar na aplicação características de sistemas afetivos visando à melhoria na iteração humano-máquina. Criar situações onde o robô reconhece as preferências do usuário ou interaja diretamente com ele. A criação de modelos diferentes, com baseados em animais diferentes também seria possível, criando assim uma variedade maior de possibilidades de interação entre os robôs, podendo torná-los mais sociáveis. Com estas observações tendo sido feitas, é possível perceber que melhorar e dar continuidade ao projeto até chegar à um modelo tanto funcional, é algo possível e um desafio a ser seguido.
    • 56 Referências Bibliográficas BRASIL, N.A. Tópicos Especiais em Robótica.2005. BARRINI, L., OLIVEIRA, B.D., SILVEIRA, I.F.. Affective Computing: Optimizing Human-Computer Interaction through Non-Verbal Communication Based on Facial Analysis. Disponível em < http://www.clihc.org/2007/papers/AffectiveComputing_ID18_shortpaper.pdf >. Acesso em 27 de jul. de 2011. BREAZEAL, C.L. Designing Sociable Robots. Boston: MIT Press.2002. CARDOSO, J., VALETTE, R.. Redes de Petri. Editora da UFSC. 1997. COLUMBUS, C. Bicentennial Man. Filme. Touchstone Pictures e Columbia Pictures, (1999). ERTUGRUL, N. Labview for electric circuits, machines, drives and laboratories.Prentice Hall – Prin. 2002. GASPERI, M., HURBAIN, P. Extreme NXT: Extending the Lego Mindstorms NXT to the Next Level. Springer Verlag NY. 2009. H2G2. FURBYS .Disponível em < http://h2g2.com/dna/h2g2/A71641> Acesso em 22 de nov. 2011. HONDA. Honda Worldwide ASIMO. Disponível em < http://world.honda.com/ASIMO/ >. Acesso em 20 abri. 2010. IFR.Industrial Robots. Disponível em < http://www.ifr.org/industrial-robots/ >. Acesso em 18 abri. 2010. IME. SENSORES PARTE 2. Disponível em < http://www.ime.eb.br/~aecc/Automacao/Sensores_Parte_2.pdf >. Acesso em 13 de jul. de 2011.
    • 57 INFO ON LINE. Robô aprende a usar arco e flecha. Disponível em < http://info.abril.com.br/noticias/ciencia/robo-aprende-a-usar-arco-e-flecha- 27092010-40.shl >. Acesso em 30 de setembro de 2010. INOVAÇÃO TECNOLÓGICA. CÉREBRO ARTIFICIAL: IBM SIMULA O CÉREBRO DE UM GATO. Disponível em < http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=cerebro- artificial-ibm-simula-cerebro-gato&id=010150091119 >. Acesso em 26 de ago. de 2010. KISMET. Sociable Machines – Kismet, the robot. Disponível em < http://www.ai.mit.edu/projects/sociable/baby-bits.html >. Acesso em 21 abri. 2010. KIRN,S.; HERZOG,O., LOCKEMANN,P.;SPANIOL,O..Multiagent Engineering, Theory And Applications In Enterprises. Nova York: Springer.2006. KUBRIC, S.; CLARKE, A.C. 2001:A Space Odyssey. Filme. Hollywood: Metro- Goldwin-Meyer, (1968). LEGO.Lego Mindstorms. Disponível em < http://mindstorms.lego.com/en- us/products/default.aspx >. Acesso em 18 de abri. 2010. LOCKEMANN, P.C. Agents. Universität Karlsruhe (TH). 2006. MARRANGHELLO, N. Redes de Petri: Conceitos e Aplicações. DCCE/IBILCE/UNESP. 2005. MUTLU, OSMAN, FORZILLI, ETC al. Perceptions of ASIMO: An Exploration on Co-operation and Competition with Humans and Humanoid Robots .Disponível em < http://pages.cs.wisc.edu/~bilge/wp-content/pubs/Mutlu_HRI06.pdf > Acesso em 23 abri. 2010. ORIENTACAOUNIVIMA2008. AFETIVIDADE, MÁQUINA E EDUCAÇÃO - POSSIBILIDADES .Disponível em < http://orientacaounivima2008.pbworks.com/w/page/8543060/AFETIVIDADE%2 C%20M%C3%81QUINA%20-%20POSSIBILIDADES > Acesso em 20 Jul.2010.
    • 58 PAZOS,F. Automação de Sistemas & Robótica.Rio de Janeiro: Axcel Books. 2002. PERSONAL. Disponível em < http://www.personal.psu.edu/scd5029/blogs/was_ist_das/2007/10/u-g-l-y-you- aint-got-no-alibi-you-ugly.html >. Acesso em 16 de nov. 2011. PICARD, R.W.. Affective Computing. Boston: MIT Press.2000. PICARD, R.W.. Affective Computing. Disponível em < http://affect.media.mit.edu/pdfs/95.picard.pdf >. Acesso em 01 abri. 2010. ROSÁRIO, J.M. Princípios de Mecatrônica. Pearson/Prentice Hall. 2005. RUSSELL.S.; NORVIG.P. Inteligência Artificial.Campus.2004. SCRIBD. Apostila Senai Automação. Disponível em < http://pt.scribd.com/doc/54362367/Apostila-Senai-Automacao >. Acesso em 16 de nov. de 2011. SIMON THE ROBOT. SIMON THE ROBOT < http://www.simontherobot.com/ >. Acesso em 27 de jul. 2010. SONY. Sony AIBO Europe – Official Website. Disponível em < http://support.sony-europe.com/aibo/>. Acesso em 21 abri. 2010. SONY. Sony Launches Four-Legged Entertainment Robot . Disponível em < http://www.sony.net/SonyInfo/News/Press_Archive/199905/99-046/ >. Acesso em 21 abri. 2010. SOUZA, L.B.S. Computação Afetiva: Reconhecimento de Expressões Bucais para Interação Não-Verbal. Disponível em < http://www.usp.br/siicusp/Resumos/15Siicusp/2356.pdf >.Acesso em 07 abri. 2010. SUPER-INTERESSANTE. ROBÔS COM ÉTICA. Edição 203. Agosto de 2004. Abril.
    • 59 TERRA. CYBER PETS. Disponível em < http://www.terra.com.br/macmania/cyberpets/ >. Acesso em 22 de out. de 2010. THE NEW YORK TIMES. STUDENTS, MEET YOUR NEW TEACHER,MR. ROBOT. Disponível em < http://www.nytimes.com/2010/07/11/science/11robots.html >. Acesso em 12 de jul. 2010. VESTERINEN, E. Affective Computing. Disponível em < http://www.tml.tkk.fi/Opinnot/Tik-111.590/2001/paperit/vesterinen.pdf>. Acesso em 07 abri. 2010.