Вы находитесь на странице: 1из 10

MOVIMENTAO AUTNOMA DE ROB HUMANOIDE COM CMERA EMBARCADA Raphael Ballet 1; Alessandra Dutra Coelho ; Wnderson de Oliveira Assis

Aluno de Iniciao Cientfica da Escola de Engenharia Mau (EEM-CEUN-IMT); 2 Professor(a) da Escola de Engenharia Mau (EEM-CEUN-IMT).

Resumo. O objetivo deste trabalho o desenvolvimento do controle de movimentao autnoma de um rob humanoide atravs de uma cmera embarcada e sensores inerciais. O projeto desenvolvido na integrao da estrutura hierrquica de controle desenvolvida anteriormente, de novas ferramentas de sensoriamento e comunicao sem fio e da criao de algoritmos eficientes de controle e de comunicao, assim possibilitando ao rob obter mais informaes sobre o ambiente em que ele se encontra e poder realizar decises corretas para sua correta movimentao. Estas decises so baseadas em sensores que assemelham ao sistema de sensoriamento de um ser humano, o que o objetivo fundamental de um rob humanoide, e a principal fonte de informao proveniente do processamento de imagens da cmera embarcada, o que traz a proximidade com o sistema de viso humano. Introduo A utilizao de cmeras embarcadas em robs autnomos vem se tornando uma prtica comum em pesquisas ou mesmo na indstria atual. muito comum ver universidades do mundo inteiro e mesmo empresas pblicas ou privadas investindo em tecnologias de automao atravs de sistema de processamento de imagens com cmeras embarcadas e outros sensores. Uma aplicao ento utilizada o rastreamento de superfcies, como cmeras acopladas em avies, helicpteros autnomos ou mesmo em carros autnomos. Outra importante aplicao o uso em veculos submarinos, como o feito por Crtual e Chaumette (2000), ou mesmo na medicina com cirurgias no presenciais (Palep, 2009). Apenas uma pequena parcela dos robs composta de robs considerados humanoides, mas de grande importncia seu estudo. Com este tipo de rob possvel a criao de algoritmos complexos de controle devido a seu elevado nmero de graus de liberdade, os quais simulam, de forma simplificada, as articulaes humanas. Atravs do estudo da movimentao de um rob humanoide, podem-se desenvolver conhecimentos sobre a movimentao humana (Asada et al., 2011) ou, at mesmo, em desenvolver prteses mveis controladas pelo crebro (Cui et al., 2006) Visto suas utilidades, o enfoque ser no uso de robs autnomos, ou seja, robs que no tem nenhuma interferncia humana. Eles devem ser capazes de perceber o ambiente e atuar conforme o objetivo a ele designado. Para isso, estes robs devem obter informaes suficientes do ambiente em que ele se encontra e um controlador capaz de processar todos estes dados para conseguir realizar a deciso correta de movimentao. Este projeto a continuao e aperfeioamento do trabalho desenvolvido no artigo (Ballet, 2012), na qual houve a introduo de um sistema hierrquico de tomada de decises e a criao de um sistema pan-tilt para movimentao da cmera embarcada. Atravs do trabalho anterior, foi visto a dificuldade da realizao do controle de um rob humanoide, j que este apresenta apenas dois apoios, sendo que apenas um deles est em contato com o solo no movimento de caminhada. A realizao do controle exato de movimentao do rob de extrema complexidade e envolve teorias de mecnica inversa para cada servo-motor, o que no ser tema deste trabalho. Para isso, preferiu-se adotar os movimentos j programados de fbrica na placa

MRC-3024 que permitem o rob realizar movimentos simples de caminhada e de posicionamento. Estes movimentos foram aperfeioados, obtendo assim um movimento mais controlado em algumas situaes, j que, com a adio de novos equipamentos, o centro de massa do rob foi deslocado, deixando o rob mais instvel. O trabalho apresenta o objetivo de obter um controle eficiente da movimentao do rob humanoide atravs de uma cmera embarcada, assim como promover a integrao da estrutura hierrquica de tomada de decises com sensores inerciais e com um dispositivo de comunicao sem fio para obter informaes em tempo real do rob enquanto ele realiza a movimentao e permitir o rob se comunicar com outros robs, o que permite os robs realizarem estratgias de movimentao em conjunto. Para realizar a telemetria, foi criado um programa no ambiente Processing, um ambiente de programao de linguagem grfica, que permite a recepo de dados em tempo real. Com este programa, torna-se possvel tornar o rob autnomo ou que funcione atravs do computador, assim como receber informaes sobre o objeto encontrado na cmera e qual deciso tomada por ele enquanto ele realiza a ao. A forma de controle desenvolvida no artigo (Ballet, 2012) demonstrou ser a forma mais eficiente de controle com relao a seu custo e facilidade de programao. Ela baseada em trs nveis de controle, sendo que h um nvel de comando central que realiza a comunicao com os outros dois. O primeiro nvel a partir da CMUCAM4, uma placa que contm um sensor CMOS de cmera. Essa placa tem a funo de capturar a imagem, realizar o processamento de imagens e mandar para o segundo e mais importante nvel. O segundo nvel composto por uma placa Arduino, um hardware livre com o qual h diversos projetos e bibliotecas presentes, o que torna rpido e fcil o trabalho de programao. O Arduino ser o comando central do rob. Atravs dos comandos indicados pelo Arduino, o terceiro nvel acionado e ele corresponde ao sistema j existente no rob, de fbrica. A placa MRC-3024, presente no rob, recebe a ao desejada pelo Arduino e realiza os movimentos existentes. Material e Mtodos Materiais utilizados O rob humanoide utilizado o Robonova-1 (figura 1) produzido pela HiTec. O rob contm 16 servomotores do tipo HSR-8498 e uma placa de controle MRC-3024 (figura 2). A placa MRC-3024 contm um microcontrolador do tipo ATMEL ATMEGA 128 e programada por uma interface em linguagem especfica do Robonova-1, o RoboBasic, que uma linguagem simples e com poucos recursos. Atravs desta limitao de programao, houve a necessidade de obter alternativas para um melhor controle de aes e inteligncia.

Figura1 -Robonova-1.

Figura 2- MRC-3024. O sistema de viso utilizado no projeto composto por uma cmera embarcada CMUCam4 (figura 3) e foi implantado um sistema de movimentao com 2 graus de liberdade, sistema pan-tilt. Este sistema utilizado para movimentao nos trs eixos, o que permite a liberdade de movimentao necessria para a ao desejada. A CMUCam4 apresenta um mdulo de sensor de cmera CMOS 9665 com um processador Parallax P8X32A. A placa open-source e pode ser reprogramada de diversas maneiras. A maneira que ser utilizada para esse projeto ser atravs da biblioteca existente da CMUCam4 para o Arduino. A placa CMUCam4 ser a responsvel por todo o processamento de imagens e clculo dos parmetros da imagem observada. Para conseguir reconhecer um objeto, necessrio dar os parmetros RGB, que so os valores de vermelho, verde e azul, respectivamente, que so especficos do objeto que se deseja procurar na imagem. Esses parmetros so enviados a partir de um intervalo de valores, para garantir que a cmera consiga visualizar toda a bola mesmo com nveis diferentes de luminosidade. Aps essa anlise de cores, a CMUCam4 envia pacotes de dados (tipo T) contendo diversos parmetros como: -mx = valor mdio (centro geomtrico) horizontal; -my = valor mdio (centro geomtrico) vertical; -pixels = A porcentagem de pixels encontrados com os parmetros desejados na imagem; -confidence = A densidade de pixels reunidos em uma parte da imagem (usado para determinar se h uma regio de certa cor, como uma bola, por exemplo). Essas informaes so enviadas continuamente para o Arduino e a partir delas que feita toda a lgica desejada.

Figura 3-CMUCam4. O sistema de controle foi definido a partir da necessidade de prover maior nvel de inteligncia ao rob, podendo haver uma melhor programao e controle das atividades necessrias. O rob apresenta uma placa MRC-3024 que apresenta um microcontrolador ATMEL ATMEGA 128. Esta placa apresenta diversas limitaes de programao, o que no permite a

incluso da lgica de controle nela. Para isso, foi desenvolvido um sistema descentralizado de controle, baseado em uma estrutura hierrquica de tomada de deciso. Nesta estrutura criada, foi introduzido um microcontrolador Arduino, que realiza o controle central de decises. A placa Arduino utilizada modelo Arduino Nano (figura 4) e apresenta as seguintes caractersticas: -Microcontrolador -Atmel ATmega328 -Voltagem de operao (nvel logico) -5 V -Pinosdigitais I/O -14 (dos quais 6 podem ser sadas PWM) -Pinos de entradaanalgica -8 -SRAM -1 KB -EEPROM -512 bytes -Velocidade de Clock -16 MHz -Dimenses -0.73" x 1.70"

Figura 4- Arduino Nano. O Arduino Nano programado atravs de um cabo Mini-B USB, que tambm pode ser usado para comunicao serial e portas Rx/Tx, que so usadas para comunicao serial TTL. H tambm a possibilidade de comunicao SPI e IC. O Arduino possui diversas bibliotecas disponveis para diversas situaes, o que torna mais rpida a criao de cdigos mais complexos. Por ser um hardware open-source, ou seja, todo seu esquema eletrnico aberto ao pblico, existe uma grande variedade de cpias e Shields no mercado. Os Shields so placas com elementos adicionais que podem ser montadas em cima de outra placa Arduino, aumentando a quantidade de funes presentes, como rels, controladores de motor, LCD, GPS e at mesmo a prpria CMUCam4. Os sensores adicionais usados no rob so os acelermetros e giroscpios. Os acelermetros medem as aceleraes em um eixo especfico, o que permite obter informaes sobre impactos, foras ou at a queda livre de um objeto. Atravs dele podemos analisar quais foras esto agindo sobre o rob e obter um melhor equilbrio quando houver um movimento no desejado. O sensor de acelermetro utilizado foi o sensor analgico ADXL320 de dois eixos. Ele gera uma sada entre 0,3 e 2,5 V. Este sensor foi utilizado para verificar a queda do rob. Os giroscpios so muito importantes, principalmente em sistemas de navegao de aeronaves, navios, piloto automtico, voos espaciais e etc. Ele se baseia em dois conceitos importantes da fsica que so a inrcia e a precesso. O giroscpio constitudo basicamente de

um rotor suspenso com um eixo em rotao. Esse rotor mantm uma posio fixa mesmo aps ser forada em uma determinada direo no paralela roda. Atravs desse sistema pode se observar a direo do objeto em relao ao rotor, o que permite a correta orientao do corpo. O sensor utilizado como giroscpio neste projeto foi o sensor da Hitec PG-03 de um eixo. Este sensor utilizado para compensar as possveis variaes do corpo do rob enquanto ele esta se movimentando. Em conjunto, o giroscpio e o acelermetro constituem a base do IMU (Inercial Measurement Unit), que so equipamentos eletrnicos capazes de medir a acelerao, orientao e direo do movimento. Podem ser integrados ainda GPS, magnetmetros e at tubos de Pitot, para um completo controle de movimento no espao. Alm dos sensores, foi adicionado um importante sistema de anlise e pesquisa em tempo real, que o uso de dispositivos de telemetria por tecnologia de rede sem fio, ou wireless. Neste trabalho, foi introduzido um dispositivo de tecnologia Zigbee, atravs de um modem Xbee, da empresa Digi International. Atravs deste dispositivo, possvel obter informaes em tempo real do rob e analisar as possveis causas de erro ou se a estratgia de movimentao est correta. Alm disso, foi possvel passar parmetros da imagem atravs deste modem e colocar estes parmetros em um programa grfico, o que permite saber exatamente a visualizao do objeto visto pela cmera. No seria possvel a passagem de todos os valores de pixels atravs do modem Xbee, mas atravs dos parmetros enviados pela placa CMUCam4, podemos reproduzir a imagem vista neste programa desenvolvido em ambiente Processing. Este modem pode ser visto na figura 5.

Figura 5 Modem Xbee de comunicao wireless Outro importante uso do dispositivo de comunicao sem fio Xbee a possibilidade de criar redes de dispositivos intercomunicados. Este modem possui um sistema eficiente de codificao e canais, onde apenas o dispositivo configurado com uma determinada senha e um determinado canal que receber as informaes desejadas. Assim, pode-se criar uma rede, onde os robs de diferentes senhas, mas em um mesmo canal, podem se intercomunicar e todos eles podem se comunicar com um dispositivo mestre, que pode ser o computador. Podendo, assim, criar uma equipe sincronizada de robs autnomos.

Projeto e testes Como j dito, o projeto consiste em tornar possvel um rob humanoide se orientar atravs de uma cmera embarcada e demais sensores e, atravs disso, ser possvel realizar operaes simples, como andar, dar um passo para o lado, chutar, levantar, sentar, virar e etc. O

controle ser baseado em nveis de controle bem definidos, nos quais so necessrias comunicaes bilaterais, de forma a tornar o sistema o mais robusto possvel. A seguir est esquematizado o sistema de controle atravs da figura 6:

Figura 4 - Esquema de controle do rob. O controle de posicionamento da cmera foi realizado atravs de um controle Proporcional-Derivativo, como visto no trabalho (Ballet, 2012). O controle interno do Arduino foi feito atravs do algoritmo simplificado a seguir: 1. 2. 3. 4. 5. 6. 7. Inicia a cmera com os valores RGB do objeto desejado; Coloca todos os servo-motores nas posies iniciais; Recebe os dados da cmera e analisa se houve objeto encontrado; Recebe dados do computador e envia os dados da cmera para o computador; Coloca os valores do centroide do objeto encontrado no controlador PD do Pan-Tilt; Corrige os servo-motores para colocar o objeto no centro da cmera; Se o servo-motor de controle horizontal estiver com mais de 30 graus de diferena com a posio frontal do rob, faa o rob girar o corpo; 8. Enquanto o objeto no estiver perto o suficiente do rob, faa o rob andar para frente; 9. Se rob estiver cado, levante; 10. Se no houver objeto visto, procure objeto atravs da movimentao do rob para os lados; 11. Quando a ao estiver decidida, espere o comando da placa MRC-3024 e ento envie a deciso; 12. Enquanto no estiver perto do objeto, volte ao passo 3;

Atravs deste algoritmo, houve a possibilidade de deciso de forma simplificada. A deciso feita atravs de controles hierrquicos de deciso. Cada deciso pode ser mais importante do que outra, conforme a urgncia dela. Um rob no pode continuar andando enquanto est cado, por exemplo. Por isso, o controle da cmera, posicionamento centralizado do rob com o objeto e o levantamento do rob so priorizados. S quando estas condies so atingidas o rob poder realizar outras funes como se aproximar do objeto. Esta forma de controle no a mais rpida maneira de se aproximar de um objeto, mas a maneira mais eficiente encontrada atravs dos testes realizados. O sistema de controle hierrquico criado foi desenvolvido e baseado nas comunicaes seriais dos dispositivos de forma sequencial. Com isso, o maior problema encontrado foi a criao desta rede de comunicao de forma confivel. O Arduino possui apenas um par Rx/Tx de comunicao serial assncrona em hardware, o que no permite que haja comunicao com mais de um dispositivo ao mesmo tempo. Este problema havia sido resolvido atravs da incluso de um circuito integrado multiplexador/demultiplexador 74HC4052 anteriormente, mas havia grande limitao com esta soluo atravs de perda de informao. Com isso, houve a necessidade da criao de portas seriais desenvolvidas em Software. Isto foi possvel atravs de uma biblioteca criada para o Arduino chamada de Softwareserial. Esta biblioteca funciona semelhantemente comunicao serial por hardware, mas utiliza portas digitais em vez de entradas genuinamente seriais. Ela acrescenta interrupes externas de entrada, onde, quando um bit de inicio de mensagem recebido, o microcontrolador entra em uma funo de interrupo e guarda a informao recebida para posterior leitura. O sistema de deciso de comando se baseia em regras de movimentao definidas. Quando o nvel 2, ou nvel de comando, decide uma ao ele envia um byte para MRC-3024 de forma serial, que representa a ao desejada. Esse cdigo representado pelo cdigo ASCII de 0 a 8. Desta forma, cada cdigo de ao criada pelo Arduino realizado de forma semelhante a um ser humano quando utiliza um controle remoto para comandar o rob. O processo de deciso feito baseado em lgica Fuzzy mostrado anteriormente e representa o processo de deciso semelhante a um ser humano. O controle hierrquico criado feito de forma que as aes mais importantes, como o levantar aps uma queda ou o ato de se posicionar corretamente antes de comear um movimento, so priorizados, ou seja, h hierarquia de decises. Os cdigos so recebidos pela MRC-3024 e definem o movimento desejado. Esse movimento realizado uma nica vez e envia de volta um sinal, informando que o movimento acabou e que precisa de novas informaes. Isso necessrio para que seja possvel um controle e estabilidade de movimentos do rob e que o mesmo no execute movimentos indesejados. O conjunto de movimentos est presente na placa MRC-3024 de fbrica pela Hitec, o que facilita o trabalho de movimentao. Resultados e Discusso Atravs de todas as modificaes houve um grande avano nas funcionalidades do Robonova-1, transformando-o em um rob inteiramente autnomo e capaz de realizar aes complexas para um rob humanoide. A introduo de uma cmera embarcada e o

desenvolvimento do novo sistema de controle, baseado na subdiviso de tarefas, trouxeram amplas possibilidades de controle e aes. A melhoria do sistema de controle, assim como a criao de um algoritmo mais eficiente, levou o rob a ficar estvel em suas decises e movimentos. O trabalho procurou desenvolver um mtodo de fcil entendimento e bem documentado para dar a possibilidade de prosseguimento neste projeto em anos futuros. Para isso, houve a criao do programa em ambiente do Arduino e um programa em Processing para haver uma integrao entre o rob e uma estao de monitoramento em um computador. Outra possibilidade criada para facilitar o desenvolvimento de testes foi a possibilidade de controlar o rob remotamente ou deix-lo autnomo atravs desta estao de monitoramento. Esta estao funciona de forma parecida com um supervisrio, o que facilita o seu entendimento e utilizao. O uso dos sensores giroscpios e acelermetros foram de grande utilidade na movimentao autnoma do rob humanoide. O sensor giroscpio utilizado funciona diretamente com a placa MRC-3024, onde internamente h um algoritmo de compensao atravs do giroscpio. Basta definir sua posio central e a placa j tem um programa para realizar a sua correo. O uso deste sensor melhorou a estabilidade do rob enquanto este se movimenta, mas, em determinadas ocasies, o rob tende a ficar em uma posio fora do seu centro de gravidade quando parado. Isto pode ter ocorrido por falha no prprio sensor ou por algum problema interno de programao na placa MRC-3024. Este um problema ainda no resolvido, mas que no gerou grandes problemas para o objetivo final, que era a movimentao autnoma do rob. O acelermetro utilizado foi o responsvel por definir a queda do rob nos momentos em que ela ocorre. Com ele foi possvel saber para que lado o rob caiu e assim ter a possibilidade de levant-lo. Os sensores utilizados apresentaram alguns problemas indesejveis na aplicao. O giroscpio apresentou alguns problemas de posio inicial depois de um perodo de testes e o acelermetro se mostrou sensvel a movimentao do rob, onde, mesmo quando no havia cado, ele marcava valores errados pelas aceleraes impostas pelo rob ao se movimentar. Estes erros de medio levaram queda do rob em algumas oportunidades, mas com a melhoria da programao e a realizao de alguns filtros na programao, foi possvel a correo de alguns destes erros. Uma melhor alternativa seria a introduo futura de um sensor que agregasse os dois sensores, como ocorre em uma IMU, explicada anteriormente. Com ela realiza-se a fuso sensorial necessria para o real posicionamento do rob de maneira mais eficiente. A parte mais importante do trabalho foi a melhoria da comunicao serial entre os dispositivos e a criao de um canal de comunicao com o computador. O uso de portas seriais criadas em software foi de difcil configurao, mas, aps diversas tentativas, houve sucesso na comunicao. O rob apresentou um tempo de resposta baixo para as decises e obteve sucesso na maior parte dos comandos realizados. A aproximao do rob a um objeto ainda precisa de melhorias devido ao problema da cmera no dar valores muito confiveis, o que no permite o rob se aproximar corretamente do objeto. A viso do rob, atravs da CMUCam4, evidenciou ser a parte mais frgil do projeto. Com a mesma houve problemas na deteco do objeto, o que um problema na realizao de testes. Muitas vezes a placa informava ter encontrado o objeto por ter objetos de cores parecidas no mesmo ambiente, o que deslocava a ateno do rob.

Futuramente haver a necessidade de criar um sistema mais eficiente de processamento de imagens e que consiga rastrear mais de um objeto em uma mesma imagem. Paralelamente a este projeto, h outros projetos que visam esta mudana. A seguir mostrado o aspecto final do ROBONOVA-I aps as modificaes:

Figura 7 Rob humanoide aps modificaes de hardware Concluses O projeto obteve resultados importantes para a concluso dos objetivos propostos no inicio do trabalho. O rob capaz de localizar um objeto e se movimentar atravs de seus sensores de forma autnoma. O trabalho ainda foi alm e possibilitou a criao de uma estao de monitoramento externa para verificar o estado do rob e possibilitar um operador parar o rob quando desejar ou mesmo controla-lo de forma remota. A forma de controle baseada em uma estrutura hierrquica foi aperfeioada, permitindo assim maior preciso na tomada de deciso, assim como maior velocidade da mesma. A melhoria do algoritmo de deciso interno no Arduino possibilitou melhor aproveitamento da memria do mesmo, permitindo ainda a adio de melhorias de controle, podendo tornar a estratgia ainda mais complexa. A pesquisa realizada neste trabalho foi baseada no aperfeioamento da estrutura de controle criada em trabalhos anteriores, na insero dos sensores inerciais e criao de meios mais eficientes de comunicao serial entre os dispositivos internos e externos do rob. Os resultados demonstram que todos os objetivos neste quesito foram atendidos e o desenvolvimento de uma estratgia de controle mais eficiente um trabalho que demanda tempo e experincia para alcanar e, com a continuao deste projeto no futuro, poderemos criar uma plataforma de pesquisa de robs humanoides autnomos slida.

O ponto mais importante criado neste trabalho foi o desenvolvimento de uma plataforma melhor de testes para haver um crescimento de complexidade nos trabalhos futuros. Todos os programas foram criados para um rpido entendimento para diminuir o tempo de procura de informaes e houve sempre a preocupao por deixar todos os programas com o mnimo de erros possvel. Toda a estrutura, sensores e programao esto com resultados satisfatrios e com grande possibilidade de aperfeioamento, o que de grande utilidade para futuros trabalhos em robs humanoides autnomos. Referncias Bibliogrficas Asada, M.; Ishiguro, H.; Kuniyoshi, Y.; MacDorman, K. F. (2001) Cognitive developmental robotics as a new paradigm for humanoid robots. Robotics and Autonomous Systems, V. 37, p. 185-193 Assis, W. O.; Genova, W. J.; Gomes, M. M.; Coelho, A. D. (2007) Aplicao de Tecnologias de Controle de Processos Contnuos e Processamento de Imagens no Futebol de Robs. Anais do SBAI 2007 Simpsio Brasileiro de Automao Inteligentes, Florianpolis, SC, Brasil. Crtual, A.; Chaumette, F. (2000). Dynamic stabilization of a pan and tilt cmera for submarine image visualization. Computer Vision and Imagem Understanding, V. 79, n. 1, p. 47-65 Cui, X. T.; Moran, D. W.; Schwartz, A. B.; Weber, D. J. (2006) Brain-Controlled Interfaces: Movement Restoration with Neural Prosthetics. Neuron, V. 52, p. 205-220. Gonzales, R. C., Woods, R. E. (2000) Processamento de ImagensDigitais. Edgard Blcher Ltda. Kikuchi, D. Y. (2007). Sistema de controle servo visual de uma cmera pan-tilt com rastreamento de uma regio de referncia. Tese (Mestrado) Escola Politcnica, Universidade de So Paulo, So Paulo, SP. Nicholls, E. (1998). Bipedal Dynamic Walking in Robotics.Honours Thesis The University of Western Australia; Department of Electrical and Electronic Engineering. Palep, J. H. (2009). Robotic Assisted Minimally Invasive Surgery. Journal of Minimal Access Surgery. V.5, I.1, p. 1-7. Rowe, A. (2003) ROBONOVA-I 16 Servo Edutainment Robot Box Kit Introduction Manual.Edited by Charles Rosenberg and IllahNourbakhsh, Carnegie Mellon University.

Похожие интересы