fases de desenvolvimento de um robÔ autÔnomo … · mostra nacional de robótica (mnr) 2.1...
TRANSCRIPT
Mostra Nacional de Robótica (MNR) 1
FASES DE DESENVOLVIMENTO DE UM ROBÔ AUTÔNOMO SEGUIDOR DE
LINHA
Mateus de Freitas Andrade, Juliano Coêlho Miranda, Dionísius Oliveira Mayr
[email protected], [email protected] (orientador), [email protected]
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS, CEFET/MG
Avenida dos Imigrantes, 1000, Vargem
CEP 37022-560 – Varginha – MG
http://www.varginha.cefetmg.br/
Resumo: O presente artigo descreve a fases de projeto e
implementação de um robô seguidor de linha no Centro
Federal de Educação Tecnológica de Minas Gerais (CEFET),
Varginha/MG, para participação na fase estadual da Olímpiada
Brasileira de Robótica (OBR) 2012, no que tange as estruturas
física, eletrônica e computacional. O robô deve simular o
comportamento de um bombeiro que tem como principal
objetivo resgatar vítimas em um ambiente. Cabe ao robô entrar
no ambiente, e, de forma autônoma, desviar de escombros,
transpor áreas que tiveram o caminho obstruído e ajudar a
resgatar as vítimas do acidente.
Palavras Chaves: Robô seguidor de linha, Robô autônomo,
Sistema Mecatrônico, Arduino, Olimpíada Brasileira de
Robótica.
1 INTRODUÇÃO
Um robô seguidor de linha (Line Follower Robot) é uma
máquina automática e programável, um sistema inteligente,
que pode detectar e seguir uma linha traçada no chão.
Geralmente, o caminho é predefinido e pode ser visível como
uma linha preta em uma superfície clara, ou invisível, como um
campo magnético [1] [2].
Este tipo de robô percebe a linha através de sensores de raio
infravermelho (IR) instalados sob o robô. Se os sensores
estiverem conduzindo, sinais são enviados para um processador
que executará a tomada de decisão para acionamento ou
desacionamento dos motores destinados a locomoção [3].
Acoplando-se garras ao robô seguidor de linha é possível
utilizá-lo para o transporte de diversos tipos de materiais, o
acionamento ou desacionamento de artefados explosivos, além
do resgate de objetos e pessoas. Na Olímpiada Brasileira de
Robótica (OBR), desafio do resgate, um robô simula o
comportamento de um bombeiro que tem como principal
objetivo resgatar vítimas em um ambiente que sofreu um
incidente. Cabe ao robô entrar no ambiente, e, de forma
autônoma, desviar de escombros, transpor áreas que tiveram o
caminho obstruído e ajudar a resgatar as vítimas do acidente
[4].
Neste contexto, este artigo descreve a fases de projeto e
implementação de um robô seguidor de linha no Centro
Federal de Educação Tecnológica de Minas Gerais (CEFET),
Unidade de Varginha/MG, para participação na fase estadual
da OBR 2012, no que tange as estruturas física, eletrônica e
computacional.
2 O SISTEMA MECATRÔNICO
A Figura 1 representa de forma genérica o sistema mecatrônico
utilizado para o projeto do robô. Os sensores permitem obter
do mundo físico informações que são processadas digitalmente,
resultando em ações de controle. O sistema de controle age
sobre o sistema físico por meio de atuadores, por exemplo,
motores [5].
Estrutura
Forma de Locomoção
Motores
Sistema de Controle
Sensores
Figura 1 – Sistema Mecatrônico proposto
O projeto foi orientado pela disponibilidade de peças, suas
peculiaridades, medidas e especificações. Como a estrutura
deve integrar o meio locomotor a motores e sensores o
controlador também deve ser compatível com os dispositivos
eletrônicos. A Figura 1 ilustra as interconexões existentes entre
cada parte do robô com suas respectivas relações, em que as
setas, sensores-controlador e controlador-motores, representam
ligações elétricas para troca de informações. As demais
conexões revelam o agrupamento entre as partes, sendo a
estrutura o suporte central.
Mostra Nacional de Robótica (MNR)
2.1 Estrutura Física
O robô seguidor de linha foi projetado com o intuito de realizar
um trabalho: entrar no ambiente, e, de forma autônoma, desviar
de escombros, transpor áreas que tiveram o caminho obstruído
e ajudar a resgatar as vítimas do acidente [4]. O trabalho é
realizado quando o robô movimenta sua estrutura a fim de
transpor áreas e deslocar o objeto a ser manipulado [6]. A
estrutura destes robôs consiste basicamente numa série de
corpos rígidos, idealmente sem deformação pela ação de forças
aplicadas sobre estes. Esta seção descreve os materiais
utilizados e os desenhos técnicos da estrutura física.
2.1.1 Corpo Principal
Com peculiaridades como transparência, resistência a abrasão,
estabilidade dimensional e boa moldabilidade [7] o acrílico foi
selecionado como material principal para confecção do corpo
do robô.
As peças foram confeccionadas através de cortes a laser, sobre
uma placa de acrílico com 5 mm de espessura e precisão de
0,01 mm.
2.1.2 Desenhos Técnicos
Os desenhos técnicos das peças foram realizados nas
ferramentas computacionais AutoCAD 2012® e SolidWorks
2011®, com escala 1:1.
Para vizualizar a montagem e o resultado final elaborou-se um
desenho em 3D no SolidWorks 2011®, com as dimensões reias,
conforme ilustra a Figura 2 (dimensões totais de 131 mm x 118
mm x 97 mm).
Figura 2 - Estrutura Mecânica, SolidWorks 2011®
As partes laterais, Peça 1 Figura 2, foram inspiradas na
disposição das rodas que compõem uma esteira (Figura 3). Tais
rodas foram dispostas em forma trapezoidal, visando equilíbro
e simetria, conforme dimensões descritas na Figura 4 (local
onde são fixados motores e esteiras).
Figura 3 – Esteira em formato trapezoidal, Tamiya 70100 [8]
Figura 4 – Dimensões Peça 1
A Peça 2 (Figura 2) é um suporte para o Sensor Ultrassônico,
desenhado com base nas dimensões do modelo utilizado (Figura
5), Modelo HC-SR04 [9].
Figura 5 - Dimensões Peça 2
Com objetivo principal de servir como base de fixação da
garra, a Peça 3 (Figura 2) é também responsável por adicionar
resistência ao corpo principal do robô (Figura 6).
Figura 6 - Dimensões Peça 3
A parte superior, Peça 4 (Figura 2), serve de base para o circuito
eletrônico e também possui função agregadora com as laterais
(Figura 7).
Figura 7 - Dimensões Peça 4
Mostra Nacional de Robótica (MNR) 3
2.1.3 Garra Robótica
A vítima descrita nas regras da fase estadual da OBR 2012 é
uma lata de alumínio com capacidade de 350 ml e com peso de
150g, neste ínterim, foi elaborada uma garra robótica acionada
por um Servo Motor, conforme esboça a Figura 8.
Figura 8 - Garra Robótica, SolidWorks 2011®
Para utilização de apenas um motor no acionamento da garra,
elaboraram-se engrenagens no início de cada haste (dedo da
garra), conforme a Peça 5 (Figura 8 e Figura 9).
Figura 9 - Dimensões Peça 5
A Peça 6 (Figura 10) compõe a parte superior da garra e, serve
como suporte para o Servo Motor.
Figura 10 - Dimensões Peça 6
Como forma de deixar a garra mais resistente, acrescentou-se
quatro unidades da Peça 7, Figura 11, entre a parte inferior e
superior, conforme a montagem da Figura 8.
Figura 11 - Dimensões Peça 7
A Peça 8 (Figura 12), parte inferior da garra, entra em contato
com a estrutura do robô e se prende a mesma. Tais peças
unidas às hastes completam o manipulador.
Figura 12 - Dimensões Peça 8
2.1.4 Junções
Através de parafusos com porcas, em diâmetros que variam de
2 a 5 mm e comprimentos de 12 mm a 50 mm, foram
realizadas as junções das peças oferecendo modularidade à
manutenção da estrutura, e flexibilidade no que tange as
regulagens necessárias durante os testes com o robô.
2.2 Sensores
Os sensores são dispositivos que fornecem dados as entradas
do controlador, pelos quais é possível obter informações
referentes ao meio. Três tipos de sensores foram utilizados:
infravermelho, ultrassônico e acelerômetro.
2.2.1 Infravermelho
A leitura do plano onde o robô se encontra foi executada por
quatro sensores infravermelho analógicos, modelo QRE1113
(Figura 13), dispostos colinearmente.
Figura 13 - Sensores Infravermelho [10]
Mostra Nacional de Robótica (MNR)
O emissor envia os raios infravermelhos em direção ao chão, e
após esses raios refletirem e serem captados pelo receptor, este
envia um valor de tensão para o controlador [11]. A tensão
enviada depende do tipo e tonalidade do meio responsável pela
reflexão. A partir do contraste entre preto e branco, da
superfície onde o robô se encontra, é possível que o trajeto seja
exercido de forma autônoma.
2.2.2 Ultrassônico
Um sensor ultrassônico do modelo HC-SR04 [9] (Figura 14) foi
utilizado para detectar objetos, superiores a 10 cm de altura, no
plano paralelo à superfície. O sensor ultrassônico funciona
emitindo uma onda sonora de alta freqüência e captando o eco
resultante do choque dessa onda com um objeto. A distância
entre o sensor e o objeto é calculada utilizando o tempo que a
onda levou para retornar ao sensor. O modelo utilizado possui
alcance de 2 cm até 5 metros e uma precisão de 3mm.
Figura 14 - Sensor Ultrassônico [12]
2.2.3 Acelerômetro e Magnetômetro Tri Axiais
O acelerômetro é o instrumento usado para medir inclinações
[11]. Conforme mostra a Figura 15, utilizou-se o modelo
LSM303DLH, fabricante STMicroeletronics, que abrange os
três eixos, X, Y e Z, ou seja, tri axial. O sensor é capaz de
detectar, por exemplo, quando o robô está em um declive ou
aclive. Este sensor foi adquirido com o circuito eletrônico
nessesário ao seu funcionamento, montado pelo fabricante
Pololu.
Figura 15 - Acelerômetro e Bússola [13]
Com funcionamento semelhante ao de uma bússola, o
magnetômetro é utilizado para medir o campo magnético da
terra e, em seguida, determinar a posição angular em relação ao
norte magnético [14]. Sendo possível localizar pontos cardeais
e orientar ou rotacionar apartir deles.
Com informações destes dispositivos o robô é capaz de realizar
rotações ou ainda direcionar-se a partir dos pontos cardeais.
2.3 Atuadores
A realização de movimentos articulares é confiada a atuadores,
que permitem a realização de um movimento desejado para o
sistema mecânico [15]. Os tipos de movimentos requeridos
foram o de locomoção, abertura e fechamento da garra,
realizados através de servo motores.
2.3.1 Motores
Dois servo motores Hobbico HCAM0149 CS-60 (Figura 16)
foram modificados para girar 360°, tornando possível a
utilização dos mesmos para fornecer o torque necessário à
locomoção do robô. A escolha desse motor se deu pelo tipo de
controle oferecido, PWM (Pulse-Width Modulation), e
acionamento sem o uso circuitos externos. Outro ponto a ser
observado é a relação torque/peso extremamente favorável:
com menos de 50 gramas o motor é capaz de fornecer um
torque de 3,50 kg.cm e velocidade de 0,16 s/60° quando
alimentado com 6V [16].
Figura 16 - Servo Motor [16]
Na garra foi utilizado um Servo Motor Turnigy MG90S,
conforme Figura 17. Este modelo possui peso de 13,4 gramas,
torque de 2,2kg.cm e velocidade de 0,08 s/60° [17].
Figura 17 - Garra Robótica acionada por Servo Motor
2.4 Estrutura de Controle
Para realizar o funcionamento autônomo, que prevê um
dispositivo de controle para interpretar os dados recebidos por
sensores, processar tais informações e enviar comandos aos
atuadores [15], optou-se pelo Arduino Uno e programação em
linguagem C.
2.4.1 Arduino Uno
O Arduino consiste em um circuito eletrônico que fornece
suporte a um Microcontrolador ATmega fabricado pela Atmel®
(Figura 18) com: reguladores de tensão, o que possibilita o uso
de fonte com tensão superior a 5V; comunicação USB
(Universal Serial Bus), possibilitando programar, enviar e
receber dados ao microcontrolador através de um computador
tipo IBM-PC; possui tamanho compatível com o robô, 5,3cm
de largura, 6,8cm de comprimento e 1,0cm de altura. A Tabela 1
cita especificações do Arduino [18].
Figura 18 - Arduino Uno [19]
Mostra Nacional de Robótica (MNR) 5
Tabela 1 - Especificações do Arduino Uno [19]
Microcontrolador ATmega328 - Atmel
Tensão de operação 5V
Tensão de entrada 7V – 12V DC
Pinos de I/O digitais 14
Entradas Analógicas 6
Memória Flash 32KB
Frequência do Clock 16MHz
2.4.1.1 Shield
Conforme adotado comercialmente, shields são placas de
circuito eletrônico que adicionam funções ao Arduino
facilitando seu uso e ampliando suas capacidades, por exemplo,
realizar o controle de servo motores, comunicação via wireless,
bluetooth ou memórias. Para atender os requisitos foi
elaborado um shield, Figura 19, que possui conexões com os
servo motores e sensores infravemelho, ultrassônico e
acelerômetro, além de oferecer sua própria alimentação, com
tensões de 5V e 6V.
Figura 19 – Confecção do Shield
Com o uso do software Proteus Professional 7.6 SP0® (ISIS e
ARES) executou-se o projeto, Figura 19, dispolibilizando
conexão para quatro sensores infravermelhos, três servo
motores, um acelerômetro e um sensor ultrassônico. A placa
possui outras características, como uma chave geral On/Off
para o shield e o Arduino, e um LED (Light Emitting Diode) de
sinalização.
2.4.2 Código Fonte
O código da estrutura de controle foi implementado em
linguagem C, com o uso do software Arduino 1.0.1®[20]. Essa
programação foi responsável pelo controle autônomo do robô,
tomando decisões mediante as informações adquiridas pelos
sensores (Figura 20).
Fez-se o uso de tutoriais e bibliotecas [21] que agilizaram a
programação pertinente a comunicação entre as partes deste
sistema mecatrônico, conforme esboça a Figura 21.
Figura 20 - Trecho do Código-Fonte, compilador Arduino 1.0.1®
Figura 21 - Tipos de comunicação com o Arduino
As operações realizadas pelo código-fonte estão sumarizadas
na Figura 23.
2.5 Fonte de Energia
Como forma de proporcionar uma locomoção independente de
cabos elétricos, utilizou-se uma bateria modelo Onyx 1800,
fabricante Duratrax, confeccionada em Níquel - Cádmio (Ni-
Cd) com 1800 mAh e 7,4 V. Justifica-se o uso desta bateria
pela duração média de duas horas e meia. Cabe ressaltar que a
corrente do robô em funcionamento é de 700mA.
3 O ROBÔ
A Figura 22 ilustra a implementação final do robô após galgar
os passos supracitados.
Figura 22 – Estrutura Final do Robô
Mostra Nacional de Robótica (MNR)
Início
Término
Leitura dos Sensores Infravermelho
Funcionamento dos motores conforme a condição dos Sensores Infravermelho
Rota de desvioDistância <
10 cm
Detecção de obstáculos através com Sensor
Ultrassônico
Leitura do Acelerômetro e do Magnetômetro
Inclinação > 15° Rampa <= TRUE
RampaInclinação
< 5° Ausência de
linha
V
V
FF
Localização e resgate da vítima
F
V
F
V
Figura 23 – Fluxograma, sumarização do código-fonte
4 CONCLUSÃO
A partir da realização desse estudo, é possível apontar
sugestões para a elaboração de projetos similares, referentes a
robôs seguidores de linha autônomos.
No que tange a estrutura física é possível adequá-la às
necessidades apresentadas ao robô, utilizando aplicativos
computacionais de desenho técnico, tornando-a modular,
compacta e flexível a necessidade de alterações.
O peso do robô e, por conseguinte, a escolha dos motores,
tornam-se fator preponderante. Para alcançar um torque maior,
servo motores podem ser utilizados, porém esta escolha
acarreta uma perda de velocidade em comparação com motores
de corrente contínua.
Usar o Arduino como dispositivo de controle fornece
praticidade no interfaceamento homem máquina, e uma ganha
de aplicações de controle que ajudam no desenvolvimento do
sistema computacional.
A realização deste projeto culminou na participação da etapa
Regional Mineira da Olimpíada Brasileira de Robótica (OBR),
sediada em São João Del-Rei no dia 30 de junho de 2012. O
robô utilizado alcançou a terceira colocação. Cabe ressaltar que
este foi o único projeto confeccionado integralmente pelos
alunos (Equipe DjMS) no que tange a estrutura mecânica,
eletrônica e computacional.
AGRADECIMENTOS
Os autores gostariam de agradecer aos Laboratórios de
Automação Industrial, Robótica e Microcontroladores do
Departamento de Mecatrônica, Centro Federal de Educação
Tecnológica de Minas Gerais (CEFET), Varginha/MG,
patrocinadores, familiares e componentes da Equipe DjMS
pelas facilidades proporcionadas quando do desenvolvimento
deste trabalho e os conhecimentos partilhados durante a
disciplina de Estrutura de Dados e Microcontroladores (EDM).
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Pakdaman, M.; Sanaatiyan, M.M.; Ghahroudi, M.R. A line
follower robot from design to implementation: Technical issues and
problems. Computer and Automation Engineering (ICCAE), 2010.
[2] Bajestani, S.E.M.; Vosoughinia, A. Technical report of building a
line follower robot. Electronics and Information Engineering (ICEIE),
2010.
[3] Pakdaman, M.; Sanaatiyan, M.M. Design and Implementation of
Line Follower Robot. Computer and Electrical Engineering (ICCEE),
2009.
[4] Olimpíada Brasileira de Robótica. Regras da Prova Prática –
Primeira Fase. OBR, 2012.
[5] Rosário, J.M..Princípios de Mecatrônica. São Paulo: Prentice Hall,
2005.
[6] Pazos, F..Automação de Sistemas Robótica. Rio de Janeiro:
Axcel Books, 2002.
[7] Canevarolo, S. V. Ciência dos Polímeros. São Carlos: Artiber,
2007.
[8] Tamiyausa, Disponível em:
http://www.tamiyausa.com/product/item.php?product-id=70100.
Acessado em 13 de setembro de 2012.
[9] Iteadstudio, Disponível em:
http://iteadstudio.com/store/index.php?main_page=product_info&cPat
h=4&products_id=52. Acessado em 13 de setembro de 2012.
[10] SpeakFun, Disponível em:
https://www.sparkfun.com/products/9453. Acessado em 18 de julho
de 2012.
[11] Warren, J.D; Adams, J; Molle, H (2011). Arduino Robotics. New
York: Springer Science and Business Media. pp. 61 – 119.
[12] Diario Eletrônico Hoy, Disponível em:
http://www.diarioelectronicohoy.com/arduino/imagenes/2012/08/HC-
SR04.pdf. Acessado em 26 de julho de 2012.
[13] Pololu, Disponível em:
http://www.pololu.com/catalog/product/1250. Acessado em 29 de
junho de 2012.
[14] STMicroeletronics, Disponível em:
http://www.pololu.com/file/download/LSM303DLH-compass-app-
note.pdf?file_id=0J434. Acessado em 20 de junho de 2012
[15] Siciliano, B; Sciavicco, L; Villani, L. and Oriolo, G (2009).
Robotics, Modelling, Plannig and Control. London: Springer-Verlag.
pp 1.
[16] Hobbico, Disponível em:
http://www.hobbico.com/radioaccys/hcam1000.html. Acessado em 30
de junho de 2012.
[17] Hobby King, Disponível em:
http://www.hobbyking.com/hobbyking/store/__9392__Turnigy_MG9
0S_Metal_Gear_Servo_1_8kg_13_4g_0_10sec.html. Acessado em 22
de junho de 2012.
[18] Arduino, Disponível em: http://arduino.cc/en/. Acessado em 17
de maio de 2012.
[19] Arduino Uno, Disponível em:
http://arduino.cc/en/Main/ArduinoBoardUno. Acessado em 12 de
julho de 2012.
[20] Arduino 1.0.1, Disponível em:
http://arduino.cc/en/Guide/HomePage. Acessado em 25 de julho de
2012.
[21] Arduino Examples, Disponível em:
http://arduino.cc/en/Tutorial/HomePage. Acessado em 29 de junho de
2012.