Você está na página 1de 8

Coleta de Lixo Médico Utilizando Protótipos de LEGO

Erick Pfeifer1, Guilherme A. B. Mello1, Anderson Eiji Yamasaki1,


Alonso A. Simões1, Priscila A. de Moraes1.
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 – Não
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. Não 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 MINDSTORMS [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) (b)
Figura 4. Graus de liberdade do robô (a) Movimento para frente e bandeja para o lado; (b)
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(b)) tem
contato com uma espécie de “cremalheira” que está anexada ao corpo móvel do robô.

(a) (b)
Figura 7. Corpo móvel do robô (a) e sistema de engrenagens que movimentam o corpo móvel
do robô (b)

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) (b)
Figura 8. “Pegador” (a) e sistema de engrenagens que movimentam a “boca” do “pegador” (b)

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) (b)
Figura 9. Içador (a) e sistema de engrenagens que movimentam o içador (b)

Para inclinar o “pegador” e finalizar a tarefa, foi implementado o sistema a


seguir.

(a) (b)
Figura 10. Inclinador (a) e sistema de engrenagens que movimentam o inclinador (b)
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 – Não 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 Sim
Anda para
frente
frente
Não

Não Detectou
Contador=4? Não Detectou saí-
Bandeja? da de lixo?

Sim Sim
Anda para
Captura
frente
Bandeja

Anda para Detectou Não


frente Lixeira?

Sim
Não Descartar
Detectou
saída de lixo
lixo?

Fim
Sim
Contador = 1

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

Você também pode gostar