Vous êtes sur la page 1sur 9

SimRob: simulador para robtica com propsito educacional

Marco Tlio Chella Departamento de Computao Universidade Federal de Sergipe (UFS) Av. Marechal Rondon, s/n - CEP 49100-000 - So Cristvo - SE
chella@.ufs.br

Abstract. Robotics activities include design, construction, integration of mechanical and electronics devices, programming a control system, debugging and evaluating the results. This set of steps has a significant financial and human cost that may limits the use of robotics as an educational tool. The simulation with software can be a option in education with robots. This paper presents the SimRob, a software for simulate mobile robots whith realtime visualization of control programs created in various programming tools. Resumo. Atividades de robtica compreendem o projeto, construo, integrao dos elementos mecnicos e eletrnicos, programao de um sistema de controle, depurao e avaliao dos resultados obtidos. Esse conjunto de etapas tem um custo financeiro e humano significativo que de certa forma limita a utilizao da robtica como ferramenta educacional. A simulao da operao de robs por meio de aplicaes especficas pode ser uma alternativa ou complemento para atividades relacionadas robtica educacional. Esse trabalho apresenta o SimRob, software para simular robs mveis que permite visualizar graficamente em tempo real a execuo de programas controladores implementados nas mais diversas ferramentas de programao. Palavras chave. simulao, robtica mvel, programao robs,competio

1. Introduo
Nesse trabalho designou-se por robtica educacional o ambiente constitudo pelo computador, componentes eletrnicos, eletromecnicos e programa, onde o aluno, por meio da integrao destes elementos, constri e programa dispositivos automatizados com o objetivo de explorar conceitos das diversas reas do conhecimento. Estes dispositivos automatizados passam a comportar-se como msculos do computador atuando no ambiente, ou seus rgos do sentido, coletando dados e enviando-os ao computador onde ser processado [DAbreu 1993] . Os trabalhos de Papert (1980) e Piaget (1952) sugerem que alunos aprendem ao fazer, por pensar e refletir sobre o que foi feito. Os princpios derivados da teoria de Piaget sobre o desenvolvimento cognitivo revisados por Papert (1985) conhecido por construcionismo, sugerem que o centro do processo relacionado ao aprendizado a participao ativa do aprendiz, que amplia seus conhecimentos por meio da construo e

manipulao de objetos significativos para o prprio aprendiz e a comunidade na qual est inserido. A atividade de robtica em um ambiente educacional cria oportunidade para que o aluno no propsito de construir um objeto fsico com determinada funcionalidade e comportamento se envolva nas etapas de projetar, construir, programar, depurar e avaliar o resultado obtido. Esse conjunto de aes coloca o aluno no centro do processo de aprendizado em que para conseguir atingir seu objetivo deve aplicar seus conhecimentos existentes ou buscar novos por meio de orientao do professor, livros, ou contedo digital. De forma geral as atividades em escolas com robtica educacional so realizadas com o suporte de conjuntos para robtica. Esses conjuntos ou kits so constitudos por uma interface eletrnica responsvel pela comunicao com o computador, e para ativao de atuadores como motores, lmpadas e rels, aquisio e converso de grandezas fsicas obtidas de sensores diversos que captam grandezas como temperatura e toque, e um sistema para programao que possibilita descrever na forma de uma linguagem de programao o comportamento planejado para o rob. O aspecto didtico acompanhado de uma metodologia adequada um fator determinante para a implementao com sucesso da robtica em um contexto educacional. O aspecto tecnolgico que pode ser representado por interfaces ou sensores dotados de recursos e capacidades elaboradas no far sentido do ponto de vista educacional se no puderem ser usados pelo aluno na construo de projetos que resultem em objetos que faam sentido para ele prprio e a comunidade. O foco apenas no aspecto tecnolgico pode levar a frustrao em razo de muitas vezes ser necessrio aplicar um esforo excessivo no domnio de como funcionam sensores, motores, comandos, reforando para professores e alunos o senso comum de que robtica algo difcil e acessvel apenas a profissionais especializados. Empresas privadas como a Lego tem oferecido conjuntos para robtica que podem ter aplicao educacional. O kit Lego NXT (2012) desenvolvido inicialmente com o propsito de entretenimento tem sido utilizado em atividades de robtica educacional com alunos do ensino fundamental, mdio e superior. Constitudo por blocos de plstico com encaixe e um computador programvel permite desenvolver os mais diversos tipos de rob. A comunidade acadmica tem pesquisado e desenvolvido conjuntos e sistemas para robtica educacional [Sipitakiat et al. 2002] [Chella 2002], em sua maioria tendo como referencial pedaggico e metodolgico o construcionismo. Sistemas com desenvolvimento no especfico para robtica educacional como o Arduno (2012), uma plataforma para computao fsica, tm sido adaptados para aplicaes com robtica educacional. Alm da montagem do dispositivo robtico o aluno deve criar um programa computacional que seja capaz de ler dados provenientes de sensores, acionar atuadores, dentro de uma sequncia lgica que corresponde ao objetivo proposto. Algumas ferramentas computacionais foram desenvolvidas especificamente para aplicao educacional quer ela seja em ambientes formais ou no. A linguagem Logo [Valente 1996] foi uma das primeiras a ser desenvolvida com um propsito educacional. Ao

adotar a metfora de uma tartaruga que se move em um plano a partir de comandos simples que indicam a direo e a quantidade de passos, foi inovadora ao oferecer uma sintaxe clara e objetiva possibilitando manter o foco no projeto e criatividade. A linguagem Scratch(2012) desenvolvida a partir dos conceitos do Logo uma evoluo significativa ao oferecer um sistema de programao baseado em comandos representados por blocos grficos. A implementao de um programa se d pela conexo dos diversos blocos. Essas ferramentas computacionais no foram desenvolvidas especificamente para programao de robs, contudo trabalhos de pesquisa [Chella 2010] [Rusk et al. 2008] ampliaram suas funcionalidades por meio de bibliotecas ou plugins para que pudessem se comunicar com interfaces de hardware. A construo de um sistema materializado na forma de um objeto fsico constitudo por motores, uma estrutura mecnica e sensores coordenados, controlados por um programa computacional exige do aluno uma forma de pensar semelhante a de um matemtico ou cientista da computao, de um engenheiro ou de um cientista cientista. O cientista da computao utiliza uma linguagem formal para expressar idias (especificamente algoritmos). Engenheiros projetam, associam componentes estruturados na forma de sistemas, avaliam os resultados propondo alternativas. Cientistas observam o comportamento de sistemas complexos, formam hipteses, e projetam experimentos para comprovar as hipteses. Expor alunos a essas formas de pensar pode auxiliar os mesmos na conduo das atividades do dia a dia e despertar vocaes para reas como cincia ou engenharia. As sees seguintes descrevem alguns simuladores especficos para robtica, o desenvolvimento do simulador para robtica SimRob, avaliao do sistema em ambiente com problema tradicional em robtica e as consideraes finais sobre o trabalho.

2. Simuladores aplicados robtica


O desenvolvimento de sistemas robticos tem se tornado complexo a medida que o mercado e a academia disponibiliza um nmero crescente de componentes de hardware e software. Ocorre tambm um incremento na variedade e complexidade das tarefas planejadas para os robs. Tomando como exemplo a OBR (Olimpada Brasileira de Robtica) prope uma prova que reproduz o resgate de vtimas em um ambiente a priori desconhecido. Para atender essa tarefa o rob deve ser capaz de navegar no ambiente, identificar e recolher objetos definidos como vtimas e evitar obstculos. Essa prova aplicada para alunos do ensino fundamental e mdio. O desenvolvimento e validao de um rob que atenda de forma satisfatria esse tipo de tarefa, de forma geral consome tempo e recursos. O uso de um simulador pode facilitar o processo de desenvolvimento e validao do rob, permitindo verificar a integrao dos componentes, e avaliar o comportamento nas mais diversas condies como por exemplo a mudana no ambiente. Outro aspecto da simulao que a mesma relativamente menos custosa em termos de recursos fsicos e financeiros, oferecendo maior flexibilidade ao permitir explorar condies que de outra forma seriam inviveis: um ambiente simulado pode ser mais complexo e ocupar um espao fsico maior que o disponvel no laboratrio. Outra possibilidade a de simular mltiplos robs mesmo sem a disponibilidade de hardware.

Simuladores para robtica podem ser classificados em dois grupos: os que so restritos para validar determinado componente como o processamento de dados de um tipo especfico de sensor ou um sistema cinemtico em particular [Simeon et. al 2001] [Kanehiro et. al 2002] e os simuladores que possibilitam a avaliao de robs a nvel de sistema, com flexibilidade para alterar e integrar componentes de software e hardware. Nessa segunda categoria se enquadra a proposta do simulador SimRob descrito nesse trabalho. Alguns simuladores que seguem esse modelo so descritos a seguir: O aplicativo Webots(2012) um ambiente de simulao com aplicao na modelagem, programao e simulao de robs mveis. Os modelos simulados podem ser configurados com atributos como textura, massa, forma e coeficiente de frico. O sistema disponibiliza vrias plataformas j configuradas como o Lego NXT e Pionner (2012) e mdulos com os sensores e atuadores mais comuns. Distribudo comercialmente oferece verses com preos que podem chegar a 2.300,00 dlares. O simulador Easy-Rob(2012) um sistema distribudo comercialmente aplicado a planejamento e simulao de plataformas robticas em plantas industriais que operam com clulas de trabalho. Permite programar e visualizar em 3D processos como manipulao de objeto, montagem e embalagem. Um conjunto de APIs (application programming interface) habilita a integrao com aplicaes externas. Projeto de cdigo fonte aberto Stage(2012) um sistema para simulao com visualizao em 2D com recursos para programao de robs em ambientes multiagentes, oferece alguns modelos de plataformas robticas e um conjunto de sensores genricos. Prov recursos para deteco de coliso e gerao de mapas. O toolkit CARMEN (2012) constitudo por uma coleo de software com aplicao no controle de robs mveis. As simulaes so visualizadas em um ambiente 2D e programadas nas linguagens C e Java no sistema operacional Linux. Oferece suporte a atuadores e sensores mais comuns como os de proximidade, GPS e coliso. Os sistemas de software avaliados so representativos permitindo sintetizar algumas concluses: aplicativos comerciais oferecem suporte e documentao adequados porem o custo pode ser proibitivo para insero nos ambientes educacionais, as solues livres e de cdigo aberto nem sempre oferecem um suporte e documentao adequados, e para instalao e configurao demandam domnio de compilao do cdigo fonte em compiladores, geralmente C/C++. Tendo como referencia esse cenrio considera-se justificado o desenvolvimento de um simulador com aplicao em ambiente educacional, flexvel e extensvel com facilidade para programao de robs, configurao e instalao.

3. Arquitetura do SimRob
Ao planejar o desenvolvimento do simulador SimRob alguns critrios forma definidos, entre eles pode-se destacar facilidade de instalao e configurao, independncia de plataforma de hardware e software, e flexibilidade para se modificar robs, sensores, ambientes, operao em tempo real e utilizao de software livre. Para atender a independncia de hardware foi adotada como ferramenta de desenvolvimento o Python, associado ao motor para desenvolvimento de jogos 2D Pygame (2012), ambas portveis possibilitando execuo em plataformas que incluem

computadores PC baseados em processadores x86 e dispositivos mveis como smartphones e tablets baseados processadores de tecnologia ARM. Seguindo a tendncia das arquiteturas de simuladores para robtica e outras aplicaes nas quais plataforma de hardware e software heterogneas devem ser capazes de trocar informaes, o SimRob implementa um sistema sob o conceito de middleware. Por meio do middleware ocorre a comunicao da aplicao do usrio com mecanismo do simulador, objetos grficos, modelos de sensores, atuadores, objetos do cenrio, detector de coliso, entre outros sistemas. A comunicao entre middleware e aplicao do usurio se d pela troca de mensagens transportadas por socket em um modelo cliente-servidor. No lado cliente foram desenvolvidas APIs nas linguagens Python e Java, possibilitando ao usurio criar aplicaes de controle utilizando chamadas a API. A comunicao por meio de socket permite que qualquer ferramenta de desenvolvimento com suporte a comunicao em rede possa ser utilizada para criar aplicaes de controle para o SimRob. O protocolo de mensagem baseado em texto facilita o desenvolvimento e extenso de APIs. O diagrama em blocos da figura 1 apresenta os vrios sistemas que compe o Simrob e a interconexo entre eles.

Figura 1. Diagrama sistema SimRob

O Middleware responsvel pela comunicao em rede, gerenciamento das conexes, deteco de erros, recebimento e despacho de mensagens. O Ncleo atua no gerenciamento, decodificao e codificao de mensagens, controle e animao dos objetos grficos, processamento dos mdulos de sensor e atuadores, e tratamento de excees de execuo. A aplicao do usurio envia comandos contidos nas APIs para controle dos atuadores e leitura dos dados de sensores. As APIs oferecem as primitivas bsicas para leitura de sensores e acionamento dos motores, com esses recursos o desenvolvedor de rob pode desenvolver algoritmos complexos que utilizam por exemplo inteligncia artificial, mapeamento, entre outros. O SimRob tem modelado um rob mvel constitudo por um sistema de trao diferencial com dois motores opostos, um sensor de distncia posicionado a frente do

rob e dois sensores de contato para detectar a coliso fsica com obstculos, um posicionado frente e outro na traseira (figura 2).

Figura 2. Representao rob mvel

O sistema foi implementado em classes contendo as funcionalidades de sensores e atuadores de forma que o usurio pode expandir o simulador programando ou modificando classes existentes adaptadas a determinado tipo de componente de hardware.

4. Execuo de simulaes
Para demonstrar a funcionalidade do SimRob foi criado um ambiente de execuo semelhante a um prdio com, corredores, passagens e obstculos (figura 3).

Figura 3. Ambiente de execuo da simulao

Um programa de controle foi desenvolvido com o propsito de que o rob navegue no ambiente, desvie de obstculos utilizando os sensores de distncia e contato O desenvolvimento do cdigo de controle exemplo foi baseado na abordagem de robtica reativa e comportamental [Brooks 1986] em que regras simples so estabelecidas para que o rob navegue no ambiente, evitando obstculos e em caso de coliso o mesmo executa movimento no sentido oposto ao do obstculo. A tabela 1 exibe trecho do cdigo desenvolvido utilizando a API Python.

Tabela 1. Ambiente de execuo da simulao

A funo leranalgica(x) genrica para leitura de dados de sensores com sada linear e nesse exemplo aplicada para ler a distncia dentro de um limite, ao implementar um rob real esse sensor poderia ser baseado em ultrasom ou infravermelho. Para executar os movimentos a funo diferencial(x) de acordo com o parmetro x executa giros no eixo do rob ou deslocamento para frente ou sentido contrrio. Caso ocorra uma coliso o valor do sensor de contato atualizado e ao chamar a funo lerdigital() se obtm valores que indicam o estado desse sensor. Um rob real para sensor de coliso de forma geral utiliza chaves que se fecham ao contato, ou sensores ticos. A execuo da simulao ocorre em tempo real e recursos como a exibio do rastro do rob a atuao dos sensores facilita a depurao e avaliao do algoritmo em execuo. A figura 4 exibe o resultado da execuo do cdigo da tabela 1.

Figura 4. Simulao em execuo

5. Consideraes Finais
O desenvolvimento de um rob envolve as etapas de definio de projeto, construo fsica, montagem e integrao dos elementos eletrnicos como sensores e motores, desenvolvimento do sistema de controle utilizando uma ferramenta de programao, depurao e avaliao dos resultados. Esse conjunto de etapas pode ter um custo financeiro e humano significativo o que de certa forma pode limitar a implantao da robtica como ferramenta educacional tanto nos nveis de ensino bsicos como no nvel superior. Ferramentas para simulao tm sido consideradas como alternativa e complemento para viabilizar o contato de alunos com a robtica. No caso de instituies que no possuem robs fsicos a simulao pode oferecer a oportunidade de colocar

alunos em contato com vrios aspectos relacionados programao e controle de um rob. J as instituies de ensino e pesquisa que possuem robs fsicos podem utilizar a simulao em etapa inicial para testar algoritmos e tcnica com maior rapidez e menor custo, aps a validao o rob pode ser construdo e controlado com comportamento parecido ao obtido na simulao. O SimRob tem como propsito oferecer a comunidade educacional um simulador para robs mveis de configurao e instalao simplificada, flexvel e com estrutura modular possibilitando a expanso de seus recursos com facilidade. Um protocolo de comunicao baseado em mensagens de texto permite a implementao de APIs na mais diversas linguagens podendo se adaptar aos mais diversos contextos educacionais. A evoluo do desenvolvimento planeja desenvolver ambientes para programao baseado em ferramentas como Scratch e dialetos do Logo podendo assim atingir alunos do ensino fundamental que ao adquirir contato com a robtica estaro habilitados a participar de atividades como a OBR e atuarem como criadores e no apenas consumidores de tecnologia.

Referncias
Arduino (2012) Plataforma Arduino, Disponvel em: < http://www.arduino.cc/> Acesso em: 13/07/2012. Brooks, R.A., (1986) A robust layered control system for a mobile robot In: IEEE Journal of Robotics and Automation. vol.2, issue 1. CARMEN (2012) Carnegie Mellon Robot Navigation Toolkit, Disponvel em: < http://carmen.sourceforge.net> Acesso em: 13/07/2012. Chella, M. T. (2002) Ambiente de Robtica Educacional com Logo In: XXII Congresso da Sociedade Brasileira de Computao - SBC2002, Florianpolis. Chella, M. T. (2010) Robotic Tool with Scratch Language In: Robocontrol 2010 4th Workshop in Applied Robotics and Automation, UNESP., Bauru. DAbreu, J.V.V. (1993) Uso do computador para controle de dispositivos: O traador grfico (Plotter), In: Computadores e Conhecimento. UNICAMP/NIED,. Cap. 17:. p. 350-366., Campinas. Easy-Rob (2012) Easy-Rob 3D Robot Simulation Tool, Disponvel em: < http://www.easy-rob.com/> Acesso em: 13/07/2012. Kanehiro, F., Fujiwara, K., Kajita, S., Yokoi, K., Kaneko, K., Hirukawa.H. (2002) "Open architecture humanoid robotics platform" In Proceedings of the IEEE International Conference on Robotics and Automation Lego (2012) Lego.com Mindstorms, Disponvel em: <http://mindstorms.lego.com/> Acesso em: 13/07/2012. Papert, S. (1994), A mquina das Crianas Repensando a Escola na Era da Informtica. Artes Mdicas, Porto Alegre. Papert, S. (1985) LOGO: Computadores e Educao. Editora Brasiliense, So Paulo.

Piaget, J. (1952) The Origins of Intelligence in Children, International Universities Press, New York. Pygame (2012) Python game development, Disponvel em: <http://www.pygame.org> Acesso em: 13/07/2012. Pionner (2012) Pioneer 3-AT, Disponvel <http://www.mobilerobots.com/ResearchRobots/P3AT.aspx/> Acesso 13/07/2012. em: em:

Rusk, N., Resnick, M., Berg, R., Granlund, M.P. (2008) New Pathways into Robotics: Strategies for Broadening Participation In: Journal Of Science Education And Technology, Volume 17, Number 1 (2008), 59-69 Scratch (2012) Scratch, Disponvel em: <http://scratch.mit.edu//> Acesso em: 13/07/2012. Sipitakiat, A., Blikstein, P., Cavallo, D.P. (2002) The GoGo Board: Moving towards highly available computational tools in learning environments.. In: Interactive Computer Aided Learning International Workshop. Carinthia Technology Institute, Villach, Austria. Simeon, T., Laumond, P., Lamiraux., F. (2001) "Move3d: a generic platform for path planning" In in 4th Int. Symp. on Assembly and Task Planning.Fukuoka, Japan. Stage (2012) 2D multiple-robot simulator, Disponvel em: < http://playerstage.sourceforge.net/> Acesso em: 13/07/2012. Valente, J.A. (1996) O Professor no Ambiente Logo: Formao e Atuao, Ncleo de Informtica Aplicada Educao/UNICAMP, Campinas. Webots (2012) Webots: robot simulator, Disponvel em: < http://www.cyberbotics.com/> Acesso em: 13/07/2012.