Coleta de Lixo Médico Utilizando Protótipos de LEGO Erick Pfeifer 1, Guilherme A. B. Mello 1, Anderson Eiji Yamasaki 1, Alonso A. ões 1, Priscila A. de Moraes 1. 1 Centro de Ciências Exatas e da Terra Universidade Católica Dom Bosco UCDB Campo Grande MS Brasil erick.pfeifer@terra.com.br, guilhermello@gmail.com, ander.06@gmail.com alonso.simoes@hotmail.com, priscila.moraes@gmail.com Abstract. This paper describes the implementation of two robots made with LEGO parts for the simulation of a medical trash-collecting environment, programmed in NQC (Not Quiet C) language, simple functions were created to generate a more complex structural program. An arena simulates a medical trash collector center, where robots use a tool to collect the trash from each room and throw them away in a medical trash bin. Resumo. Este artigo descreve a implementação de uma dupla de robôs feitos de componentes de LEGO para uma simulação de um ambiente de coleta de lixo hospitalar. Programados em linguagem NQC (Note Quiet C exatamente C), funções simples foram criadas para gerar um conteúdo estrutural mais complexo. Uma arena simula uma central de coleta de lixo médico, onde a dupla utiliza uma ferramenta para coletar o lixo de cada cômodo e o despeja em uma lixeira central. 1. Introdução O manuseio inadequado de lixo hospitalar pode ser muito nocivo à saúde humana, pois as pessoas que o manipulam ficam sujeitas a doenças e vários outros tipos de contaminação [Portugal 2006]. Com isso, existe a necessidade da automatização desse processo utilizando agentes não-humanos. Atualmente, robôs móveis autônomos são a maior aproximação para agentes não-humanos [Ulrich 2003]. Para isso, foram construídos protótipos de robôs utilizando peças de LEGO, que realizam essa tarefa em dupla utilizando uma ferramenta para o manuseio do lixo. O conjunto de componentes LEGO é prático e flexível quanto à sua montagem. Prático, pois não precisa de lubrificantes ou pintura, reaproveitável quanto à sua construção, ecológico, pois é feito de plástico reciclável, não emite poluentes e principalmente, utilizando suas peças, pode-se montar robôs seguindo uma geometria precisa. há limites utilizando LEGO, pode-se fazer praticamente tudo quanto a montagens mecânicas [Ferrari at al 2002]. Na atualidade, robôs de LEGO são construídos para simular robôs de verdade. Visando a simplificação desta tarefa em um primeiro momento, foi criado um ambiente genérico para a coleta de lixo hospitalar. Este ambiente conta com aberturas nas paredes para escoamento do mesmo, divisões que representam cômodos hospitalares e uma caixa onde serão descartados resíduos. Dentro do ambiente há uma dupla de robôs equipada com sensores para detectar cada abertura de escoamento do lixo e utilizar uma ferramenta para coletar o mesmo.
Após a coleta do lixo de cada cômodo, os robôs seguem até a caixa onde os resíduos são descartados. Primeiramente será feita a descrição da arena utilizada para realizar a tarefa. Em seqüência será aprofundada a teoria sobre a estratégia da montagem, seguida pela programação estruturada e a comunicação dos robôs. Por fim as conclusões obtidas da criação dos robôs. 2. Descrição da Arena Supondo uma situação em que um hospital tenha em cada cômodo um lixo canalizado até uma central onde ele deve ser recolhido e depositado em uma lixeira. Foi construída uma arena que simula o local da transferência da tubulação de cada cômodo até uma lixeira central [IEEE 2006]. Pode-se observar a composição da arena na Figura 1. Figura 1. Panorâmica da arena [IEEE 2006] A arena é constituída de paredes laterais, chão e lixeira, que são construídos usando madeira MDF (Médium Density Fiberboard tábua de fibra de média densidade) de 0,5cm de espessura. O chão é um tablado único pintado de branco. As marcas no chão são feitas com fita adesiva preta (marcando as divisões dos cômodos) e azul (marcando as saídas de lixo de cada cômodo). Na lateral da arena, representando a saída da tubulação de cada cômodo, são dispostas quatro aberturas circulares em pontos aleatórios, com travas rotacionais de madeira que impedem a queda indesejada do lixo no solo, de onde sairá o lixo, que por sua vez, é representado por bolas de tênis de mesa ( = 3,6cm diâmetro das bolas). Figura 2. Abertura para saída de lixo [IEEE 2006] A ferramenta utilizada para armazenar o lixo é uma bandeja, projetada usando um tubo PVC (PolyVinyl Chloride) cortado ao meio longitudinalmente, com dois apoios laterais feitos de isopor, a uma distância de 5cm de cada extremidade. O meio-tubo de PVC tem um raio de 2,5cm, comprimento de 55cm e, em suas extremidades possui uma pequena trava de isopor para que as bolas que representam o lixo hospitalar não rolem para fora da bandeja, conforme ilustrado na figura 3.
Figura 3. Bandeja de manipulação [IEEE 2006] 3. Construção do Robô O robô foi montado exclusivamente para realizar a tarefa proposta. O material utilizado foi peças de kits LEGO M INDSTORMS [LegoMindstorm 2006] [LegoMindstorm 2006b]. Esse kit inclui, além das peças básicas de construção, sensores de toque e luz, para receber as informações do meio externo e motores para que o robô se movimente,e ainda antes da montagem física dos robôs foi utilizado um simulador de LEGO onde se podem fazer pré-montagens, para evitar erros no projeto [LEGO 2006a] [LEGO 2006b]. A estratégia arquitetada se baseia em: os robôs sempre se movimentarem em uma única direção. Isso elimina a necessidade de um motor que seria necessário para realizar curvas e correções no direcionamento. Para que isso fosse realizado, colocou-se apenas um motor no centro do eixo dianteiro do robô (as rodas traseiras seguem o movimento da dianteira). Sensores foram posicionados para monitorar cada situação. Os robôs somente se deslocam em um único eixo, para frente e para trás. Como é necessário que se pegue o lixo nas paredes laterais, é preciso que os corpos dos robôs possam se deslocar perpendicularmente ao seu eixo de deslocamento para que a bandeja se aproxime das aberturas das quais cairão as bolas. É importante ressaltar que o lixo não deve cair no chão nem tocar os robôs em momento algum. Os robôs, para capturarem a bandeja, devem segurar os apoios de isopor. Para realizar esta subtarefa foi implementada uma espécie de pegador ao corpo do robô, que agarra o isopor. Os robôs possuem quatro graus de liberdade para movimentar a bandeja, fazendo com que a bandeja se aproxime com precisão das saídas de lixo. No total, foram utilizados cinco motores, cinco sensores de toque e um sensor de claridade, em cada robô.
(a) Figura 4. Graus de liberdade do robô (a) Movimento para frente e bandeja para o lado; Rotações, subida e descida Figura 6. Dupla de robôs Os robôs são montados identicamente quanto a sua estrutura física. Para que a bandeja se aproxime das saídas de lixo, foi implementado um sistema de engrenagens que movimentam o corpo móvel do robô para os lados, esse sistema (Figura 7) tem contato com uma espécie de cremalheira que está anexada ao corpo móvel do robô. (a) Figura 7. Corpo móvel do robô (a) e sistema de engrenagens que movimentam o corpo móvel do robô O pegador, criado para coletar a bandeja, faz esta subtarefa fechando uma espécie de boca e prensa o apoio de isopor em si. Abaixo, uma foto do pegador e ao lado dela, o sistema de engrenagens utilizado para mover a boca.
(a) Figura 8. Pegador (a) e sistema de engrenagens que movimentam a boca do pegador Para que ao final da tarefa, o lixo seja despejado na lixeira central, a bandeja deve ser içada e virada para que o lixo caia. Para proporcionar isto, foi implementado um sistema que iça e outro inclina o pegador. (a) Figura 9. Içador (a) e sistema de engrenagens que movimentam o içador Para inclinar o pegador e finalizar a tarefa, foi implementado o sistema a seguir. (a) Figura 10. Inclinador (a) e sistema de engrenagens que movimentam o inclinador
4. Programação do Robô A intenção de gerar uma maior precisão nos movimentos mecânicos dos robôs implica diretamente na programação [Knudsen 1999] [Soh 2002], que se torna mais complexa por ter mais variáveis influenciando o sistema. Outro complicador é a comunicação entre robôs, que é condição sine qua non para o sincronismo de tarefas entre os componentes da dupla. Todos os sensores e atuadores (transdutores) implementados nos robôs são conectados em uma unidade central chamada RCX, um processador programável simples, que controla motores, monitora os estados de sensores e toma decisões a partir da programação recebida. A programação, por infravermelho, é enviada ao RCX por meio de uma torre transmissora conectada ao computador programador. É importante ressaltar que a programação dos robôs não é realizada em tempo real; toda a programação é enviada aos robôs antes do inicio da tarefa. Como cada RCX pode controlar até três motores e três sensores, tornou-se necessária à utilização de dois RCXs em cada um dos robôs. Cada robô deve segurar um dos apoios laterais. Os robôs têm de carregar essa bandeja juntos até a lixeira central e por isso, o maior desafio dentro da programação da dupla está em sincronizar ao máximo possível seus movimentos, para que não se perca o domínio da bandeja. Este fato complicador pode ser resolvido por meio da correta comunicação entre os robôs e entre cada RCX acoplado ao robô. É importante ressaltar que os RCXs se comunicam por sinais infravermelhos, portanto, seus transmissores e receptores devem estar sempre alinhados para troca de mensagens. Apresentadas as principais complicações, inicia-se a programação de cada RCX. Existem muitas linguagens em que o RCX pode ser programado, como NQC [Taffe 2002] (Not Quiet C exatamente C), JAVA [Laverde 2002], e até uma linguagem de blocos criada pela própria LEGO que é de simples aprendizado, no entanto muito limitada. Pelo ímpeto de realizar uma programação estruturada e utilizar uma linguagem de domínio teórico simplificado, porém, não limitado quanto aos comandos, foi escolhida a NQC. Essa linguagem é muito parecida com C, pode-se realizar uma programação estruturada e simples. Também proporciona várias opções quanto à comunicação entre RCXs. Existem diversos ambientes de programação em NQC, tendo sido escolhido o Bricx Command Center 3.3, por sua interface gráfica clara e objetiva, e por ser muito popular em competições de robôs de LEGO na atualidade [IEEE 2006]. Para a realização da tarefa, definiu-se que um robô é escravo do outro, ou seja, um só age se solicitado pelo outro, sendo que esta relação mestre-escravo é alternante entre robôs. Um exemplo dessa aplicação ocorre quando é detectada uma saída de lixo, o robô mais próximo da mesma se tornará mestre e ordenará um algoritmo para a aproximação na saída de lixo. Esta definição auxilia para que haja um maior sincronismo de ações. Utilizando a definição acima citada, pode-se, portanto, criar um algoritmo completo a partir de funções simples. Resumidamente, o algoritmo começa com a tarefa se inicia com a dupla locomovendo-se em direção à bandeja até que um sensor de toque indique que estão prontos para pegá-la. A bandeja é capturada e os robôs começam a seguir em direção à lixeira central, porém, até chegar, eles passam pelas saídas de lixo.
Caminham até que se encontre uma linha azul no chão que indica uma dessas saídas. Quando a linha é encontrada, um robô ordena ao outro a realização do algoritmo de aproximação, abertura da trava e retirada de lixo. Continuam até retirar o lixo dos quatro cômodos existentes. Após a retirada de todo o lixo, eles continuam seguindo até a lixeira central e ao alcançá-la, erguem a bandeja e despejam o lixo em seu interior, concluindo a tarefa. Abaixo, um fluxograma genérico das tarefas realizadas pela dupla de robôs. Início Coleta do lixo Incrementa contador Anda para frente Anda para frente Detectou Bandeja? Contador=4? Detectou saída de lixo? Captura Bandeja Anda para frente Anda para frente Detectou Lixeira? Detectou saída de lixo? Descartar lixo Contador = 1 Fim Figura 7. Fluxograma da programação 5. Conclusões Utilizando os protótipos de LEGO pode-se perceber que a manipulação de lixo hospitalar pode ser mais segura para seres humanos. Essa forma de simulação é pratica, pois por meio dela pode-se perceber quais riscos de erros o projeto está submetido, juntamente com o simulador LEGO CAD [LEGO 2006a], podendo fazer mudanças necessárias para o sucesso deste, antes de sua implementação física. Isto contribui para a
diminuição dos riscos de insucesso do projeto e gasto desnecessários de recursos, considerando que um projeto de tal porte terá um custo elevado. Percebe-se também que o LEGO é uma ferramenta muito prática, pois muito além de simples blocos de montagem, é uma ferramenta que pode auxiliar em problemas de risco humano e atendendo as expectativas das partes envolvidas. Observou-se ainda que a programação utilizando a técnica implementada, de mestre-escravo alternante, tornou a sincronia de movimentos melhor e facilitou a conclusão da tarefa. A parte física do robô, apesar de ser mais pesada que o esperado, também se mostrou eficiente, respondendo com precisão à programação implementada. 6. Referências Bibliográficas [Portugal 2006] Portugal,Gil. (2006) Lixo Hospitalar, http://www.gpca.com.br/gil/art62.html, Março. [Ulrich 2003] Ulrich, Nehmzow. (2003) Móbile robotics: a pratctical introduction, Robótica Móvel, EUA, Springer-Verlag London Limited. [Ferrari at al 2002] Ferrari, M.; Hempel, R. e Ferrari, G. (2002) Building robots with Lego mindstorms: the ultimate tool for mindstorms maniacs!, Robôs: Lego, projetos e construção, EUA, Syngress Media, Inc.. [IEEE 2006] IEEE Rules for the LEGO category. The Robotic Medical Trash Collector. 5th latin american IEEE student robotics competition, 2006. [Knudsen 1999] Knudsen, Jonathan B. The Unofficial Guide to LEGO MINDSTORMS Robots O Rely. first Edition October, 1999. [LegoMindstorm 2006a] LegoMindstorm. site: www.legomindstorms.com, Março, 2006. [LegoMindstorm 2006b] The Lego Mindstorm Kit site: http://www.inf.ed.ac.uk/teaching/courses/sdp/lego/lego.htmzl, Março, 2006. [Laverde 2002] Laverde, Dario. Programming Lego Mindstorms With Java. Syngress. 2002. [Soh 2002] Soh, CS. LEGO MINDSTORM Robotics Invention System 2 Projects. Syngress. 2002. [Taffe 2002] Taffe, William J., Programming Lego Robots using NQC. Mark Overmars. November, 2002. [LEGO 2006a] LEGO 9v Technic Motors Compared Characteristics. Site: www.philohome.com/motors/motorcomp.htm, Março, 2006. [LEGO 2006a] LEGO CAD. Site: http://www.lm-software.com/saver/, Setembro, 2005