Você está na página 1de 56

Universidade do Estado do Amazonas – UEA

Escola Superior de Tecnologia – EST

Gustavo Myrria Neto

Desenvolvimento de um Robô Móvel


Versátil

MANAUS – AM

2007
Universidade do Estado do Amazonas – UEA
Escola Superior de Tecnologia – EST

Gustavo Myrria Neto

Desenvolvimento de um Robô Móvel


Versátil

Monografia apresentada à Escola


Superior de Tecnologia da Universidade
do Estado do Amazonas para obtenção
do Título de Graduado em Engenharia
Mecatrônica sob orientação do Prof. Dr.
Israel Mazaira.

MANAUS – AM
2007

2
Universidade do Estado do Amazonas – UEA
Escola Superior de Tecnologia – EST

Gustavo Myrria Neto

Desenvolvimento de um Robô Móvel


Versátil

Banca Examinadora:

Nome:

____________________________________________________________________

Prof. Dr. Israel Mazaira

Nome:

____________________________________________________________________

Prof. Dr. Roberto Ballasteros

Nome:

___________________________________________________________________

Prof. Msc Rubem Sichar

MANAUS – AM
2007

3
Dedicatória

Dedico este trabalho aos meus queridos e amados pais, Carlos e


Olindina, pelo grande amor, pela muita paciência, pela motivação, pelo
suporte, pelas lutas enfrentadas e pelas vitórias alcançadas sem os quais
nada poderia ser realizado!

4
Agradecimentos

Agradeço, em primeiro lugar, ao meu bom Deus, que em todas as


coisas me faz mais que vencedor! Pois dEle, por Ele e para Ele são todas
as coisas!

Aos meus pais, Carlos e Olindina, e às minhas irmãs, Diana e


Sahra, pois sem todo apóio, sem a motivação e, principalmente, sem o
amor demonstrado nada seria possível.

Aos meus amigos, Carlos, Andrei, Walter e Rodrigo, pelo ouvir e o


compartilhar durante a toda nossa caminhada como equipe ProficLan e
como pelos memoráveis tempos de iniciação científica.

À professora Marlene, que com toda atenção prestou auxilio


durante o transcurso de todo o trabalho.

5
Resumo

Com a evolução da tecnologia de circuitos integrados e o desenvolvimento das


teorias da Robótica, robôs móveis estão cada vez mais freqüentes. O estudo da
Robótica móvel hoje em dia é devotado à solução de problemas do cotidiano.
Entretanto, para o sucesso da construção de um protótipo de um veículo autônomo
móvel é necessário o estudo e modelagem de todo o sistema. As teorias e as
modelagens cinemática e dinâmica são ferramentas muito poderosas para um
conhecimento completo do robô. Neste trabalho é mostrado o estudo da construção de
um robô autônomo móvel versátil, levando em consideração a sua construção, a
seleção de materiais e componentes e ainda sua modelagem cinemática do robô
móvel.

6
Sumário

1 Introdução ..............................................................................................................9
1.1 Situação Problemática....................................................................................9
1.2 Justificativa ..................................................................................................10
1.3 Objetivos deste Trabalho .............................................................................10
1.4 Organização deste trabalho ..........................................................................11
2 Revisão da Literatura ...........................................................................................12
2.1 Robótica .......................................................................................................12
2.1.1 Definição de Robô ...............................................................................12
2.1.2 Robô Móvel .........................................................................................13
2.2 Robôs Móveis ..............................................................................................13
2.3 Modelo Cinemático do Robô Móvel............................................................16
2.3.1 Modelos Cinemáticos e Restrições ......................................................16
2.3.1.1 Representação da Posição do Robô .................................................17
2.3.1.2 Modelos de Cinemática Direta.........................................................19
2.3.1.3 Restrições Cinemáticas de Rodas ....................................................21
2.3.1.4 Mobilidade e Classificação de Robôs Móveis .................................24
2.3.1.5 Modelo Cinemático de Postura........................................................27
3 Concepção do Projeto do Robô Móvel ................................................................31
3.1 O microcontrolador Atmel AVR ATMEGA16 ...........................................31
3.1.1 Ferramentas de desenvolvimento.........................................................33
3.1.1.1 Hardware..........................................................................................33
3.1.1.2 Software ...........................................................................................34
3.1.2 Procedimentos Básicos para o Funcionamento....................................38
3.1.2.1 Registros de configuração................................................................38
3.1.2.2 Seleção da freqüência do relógio .....................................................40
3.1.3 Funcionalidades particulares................................................................41
3.2 Sensores .......................................................................................................42
3.2.1 Sensores de Toque ...............................................................................43
3.2.2 Sensores de Distância ..........................................................................43
3.2.3 Sensores de Proximidade .....................................................................43
3.2.4 Sensores de Visão ................................................................................44
3.3 Motores ........................................................................................................44
3.4 Baterias ........................................................................................................45
3.5 Modelo Cinemático do Robô WinoFire.......................................................46
3.6 Modelo Cinemático de Postura do WinoFire...............................................46
4 Resultados ............................................................................................................49
4.1 Robô Autônomo Inteligente: WinoFire .......................................................49
4.2 Características do robô WinoFire ................................................................50
4.2.1 Motores ................................................................................................51
4.2.2 Sensores ...............................................................................................51
4.2.3 Bateria ..................................................................................................51
4.2.4 Sistema Eletrônico ...............................................................................52
4.3 Testes e Resultados ......................................................................................52
5 Conclusões ...........................................................................................................53

7
5.1 Conclusões ...................................................................................................53
5.2 Trabalhos Futuros ........................................................................................53

8
Capítulo 1
1 Introdução

Cada vez mais a interação entre homem máquina pode ser vista em nossos
dias. Seja desde a compra de um jornal até o piloto automático de um avião, os
sistemas automatizados fazem parte da vida cotidiana de bilhões de pessoas no
mundo. E com o avanço da tecnologia e com o melhoramento do desempenho de
sensores, sistemas robóticos móveis têm ganhado mais espaço no cenário comercial e
industrial.

É possível citar muitos exemplos de uso de sistemas robóticos móveis. Um


exemplo pode ser encontrado no robô Chico Mendes, desenvolvido dentro do projeto
PIATAM II, patrocinado pelo FINEP e com o apoio de várias instituições de
pesquisa. Este robô realizara a coleta de recursos e realizará análises remotamente e
enviará os dados aos pesquisadores. Este é um exemplo de um projeto genuinamente
brasileiro dentro do campo de robótica móvel.

Com o grande desenvolvimento dentro desta área torna-se interessante o


estudo de como estes robôs móveis podem ser modelados e construídos, levando em
consideração aspectos técnicos e teóricos.

1.1 Situação Problemática

Envelhecimento da população, mudanças climáticas, terrorismo, são alguns


dos desafios do mundo hoje. Torna-se interessante fazer maquinas inteligentes
trabalharem para o propósito de resolver estes problemas. E para resolver estes
problemas, institutos de pesquisa e laboratórios pelo mundo estão dedicados a
trabalhar para desenvolver teorias e aplicações nesta área. Nos dias de hoje, é possível
a construção de robôs desde para o cumprimento de aplicações domesticas, como
fazer um café, até sofisticadas aplicações médicas, como em aplicações cirúrgicas.

9
No futuro, robôs móveis dotados com biosensores poderão auxiliar soldados
ante o perigo de armas químicas, identificando a presença e a natureza dos gases, e
alertando os humanos. Robôs móveis voadores poderão ainda monitorar e
supervisionar a poluição do meio ambiente.

Com o avanço da tecnologia é possível a concepção de novas idéias, aplicando


protótipos utilizando áreas como inteligência artificial, robótica, micromáquinas e
materiais inteligentes. Os atuais sistemas de inteligência para robôs permitem a
aplicação possuindo comportamentos simples comparados a insetos. Avanços como
estes em “Software”, acompanhados na evolução na tecnologia de micro-sensores e
microatuadores oferecem a oportunidade de termos no futuro robôs pequenos, de
baixo custo e potencialmente úteis para tarefas de cirurgia.

É possível verificar a grande gama de aplicações hoje encontradas na robótica


móvel. Logo o estudo das equações que modelam um robô móvel e aspectos de sua
construção torna-se mister, cabendo ao pesquisador a tarefa de buscar na bibliografia
o material necessário para o entendimento completo deste.

1.2 Justificativa

Como mostrado na seção anterior, existe uma grande variedade de aplicações


de robôs móveis. O seu estudo hoje motiva milhares de pesquisadores e diversos
centros de pesquisa de modo a responder suas principais questões e otimizar o
comportamento destes. É notória a escassez de trabalhos na área acadêmica voltados
ao estudo da robótica móvel.
Como em todo estudo teórico, existe a necessidade de validação dos resultados
por meio da comparação entre o teórico e o experimental. Logo, o estudo cinemático
de robôs móveis pode ser validado por meio de testes em plataformas robóticas.
Contudo, as plataformas comerciais muitas vezes possuem um valor alto para a
aquisição de um grupo de pesquisa de uma Universidade, prejudicando os estudos
realizados pela privação de testes experimentais. Logo, torna-se interessante a
construção de robôs móveis acessíveis para estudo das teorias de modelagem destes
veículos.

1.3 Objetivos deste Trabalho

O objetivo principal deste trabalho é implementar um robô móvel autônomo de


forma que este possa servir de plataforma para estudo futuros na área da robótica
móvel.
Para a realização deste trabalho, a implementação de um robô móvel, foram
realizados os seguintes passos: escolha de um microcontrolador adequado para as
necessidades do projeto, conhecimento de linguagem de programação, escolha dos
módulos eletrônicos e mecânicos para a implementação do robô, seleção dos motores
e sensores, baterias, desenho do projeto, confecção e montagem das pecas e testes
finais.

10
1.4 Organização deste trabalho

A dissertação está organizada de acordo com os seguintes capítulos:

• Capítulo 2: Neste capítulo está uma revisão da literatura sobre o tema robótica,
conceitos de modelagem de robôs móveis, mostrando a modelagem cinemática e
como os aspectos estruturais, como número de rodas e suas características podem
influenciar no modelo cinemático do robô móvel como um todo.

• Capítulo 3: Este capítulo está dividido em duas partes: Na primeira parte são
mostradas características de microcontrolador em geral, critério para seleção do
microcontrolador, características e tipos de sensores e atuadores utilizados no
robô. E numa segunda parte tem o modelo cinemático do robô WinoFire,
construído neste trabalho;

• Capítulo 4: Neste capítulo são mostrados os resultados obtidos da construção do


robô móvel versátil. É realizada uma comparação com os testes realizados e as
respostas obtidas.

• Capítulo 5: Neste capítulo tem uma conclusão deste projeto avaliando os


resultados obtidos em relação ao objetivo proposto. Ainda temos sugestões para
trabalhos futuros..

11
Capítulo 2
2 Revisão da Literatura

No mundo pós-moderno, a Robótica é uma ciência bastante presente na vida


da humanidade. A Robótica pode ser definida como se segue:

“É a ciência da utilização de máquinas que desempenhem funções sem a


intervenção do homem”.

Para melhor entender este trabalho, é interessante a definição de termos que


serão utilizados a seguir, como é o caso da definição de robô:

2.1 Robótica

2.1.1 Definição de Robô

Definição da JIRA ( Japan Industrial Robot Association) : O robô é


definido como um sistema mecânico que possui movimentos flexíveis análogos aos
movimentos orgânicos, e combina esses movimentos com funções inteligentes e ações
semelhantes as do ser humano. Neste contexto, função inteligente significa o seguinte:
decisão, reconhecimento, adaptação ou aprendizagem.

Definição do RIA ( Robot Institute of America) : O robô é definido como


um dispositivo mecânico programável para execução de algumas tarefas de
manipulação ou locomoção sob controle automático. Robô industrial é um
manipulador multifuncional e reprogramável projetado para movimentar materiais,
peças e ferramentas ou dispositivos especiais, conforme programação prévia, de modo
a executar uma variedade de tarefas.

12
2.1.2 Robô Móvel

É necessário também definir o que vem a ser um robô móvel. Segundo ( Muir,
1988), define o robô como: : “um robô capaz de se locomover sobre um superfície
somente através da atuação de rodas montadas no robô e em contato com a superfície”
(Victorino,1998). Por meio da rotação das rodas é obtido um movimento relativo
entre o eixo do robô e a superfície de contato.

Para que estes robôs móveis possam navegar dentro de um ambiente é


necessário o uso de sensores. Com o uso destes, o robô móvel passa a ter percepção
de obstáculos e possíveis fenômenos físicos e desta forma, pode tomar decisões, sem
a intervenção do homem. Atualmente existe uma grande quantidade de tipos de
sensores que podem ser utilizados, dos quais podemos citar os sonoros,
infravermelho, toque.

Os processos de percepção e decisão podem ser considerados de três formas:

• Estratégia Reativa: o comportamento do robô é determinado pelos estímulos


exteriores vindos do ambiente obtidos por sensores;

• Estratégia deliberada: as informações do ambiente são previamente processadas e


a tarefa e o comportamento do robô é previamente determinado;

• Estratégia híbrida: junção das duas anteriores

2.2 Robôs Móveis

Desde a década de 60 já realizava estudos em robôs móveis por institutos de


pesquisa ao redor do mundo. O robô SHAKEY, do instituto de pesquisa de Stanford,
foi desenvolvido com o objetivo de estudar as aplicações de inteligência artificial e
estudar os processos para controle em tempo real de robôs os quais interagissem com
ambientes complexos (Rezendo, 1992). O robô CART do mesmo instituto de pesquisa
foi desenvolvido para estudos de visão estéreo.

Estes robôs usavam computadores externos e operavam, na maioria das vezes,


em ambientes estáticos. No caso do SHAKEY, os experimentos incluíam a alteração
do ambiente após muitas horas de execução, sem que o robô percebesse o efeito do
ato dinâmico. Não obstante as simplificações, eles operavam muito lentamente. Era
necessário muito tempo construindo modelos de mundo e era utilizado pouco tempo
de computação para planejar e agir.

Na época, a dificuldade de levar adiante as aplicações ao mundo real e a falta


de instrumentação eficiente (computadores, sensores) retardaram o avanço da

13
pesquisa para estes robôs. Houve falta de perspectivas palpáveis por parte dos
pesquisadores, como por parte dos financiadores que queriam resultados imediatos.
Desta forma, houve ascensão dos robôs manipuladores de aplicação imediata e de
resultados palpáveis a curto prazo. Com a tecnologia dos microprocessadores uma
retomada do interesse pelos robôs móveis,

O Laboratório de Robôs Móveis, no instituto de Robótica da Universidade de


Carnegie-Mellon, tem desde 1982 projetado, construído e avaliado quatro protótipos
de robôs moveis:
O robô PLUTO, com três rodas independentemente associadas, foi
desenvolvido para o estudo dos problemas de controle e estabilização.

O robô NEPTUNE, um triciclo equipado com duas câmeras e 24 sensores de


ultra-som distribuídas em sua volta.

O robô ILONATOR possui quatro rodas unidirecionais montadas


simetricamente nos quatro vértices de um retângulo, resultando um movimento com
três graus de liberdade. Um microprocessador embarcado realiza a interface com os
atuadores das rodas possuindo encoders ópticos e o robô necessita de um computador
para a comunicação dos comandos de alto-nível.

O robô TERRAGATOR é dotado de um motor à gasolina deslocando a curtas


distancias e se orienta a partir das bordas da pista.

Na França os robôs mais representativos são:

O HILARE do Laboratorie d’Automatique et d’Analyses des Systemes (LAAS)


que é utilizado para pesquisas sobre a programação de robôs móveis e planejamento
de movimento.

O robô móvel do projeto ICARE, do INRIA/Sophia Antipolis, que serve como


plataforma experimental para o estudo de processamento de imagens em 3D.

O Artificial Intelligence Lab Massachussetts Institute of Technology (MIT)


possui trabalhos relevantes nesta área, cita-se os seguintes:

O robô PEBBLES, um robô móvel usando câmera para evitar obstáculos em


ambientes acidentados e desconhecidos.

Os micro-robôs ANTS projetados para explorar idéias sobre a ação de


cooperação entre robôs. Este projeto tem como objetivos estender os limites da micro-

14
robótica integrando muitos sensores e atuadores em um espaço pequeno, formando
uma espécie de comunidade robótica estruturada a partir destes indivíduos. Este
projeto foi inspirado em colônias de formigas.

O SOLEITE, um robô móvel de 30 gramas de massa, completamente


autônomo e alimentado por energia solar. A energia coletada pelo painel é
armazenada em um capacitor de 1F para a alimentação do robô. O intuito deste é
aplicação em projetos espaciais.

O robô KHEPERA, de origem de suíça, trata-se de um robô móvel


miniaturizado de seção circular com raio de 2,5 cm e que se move através de duas
rodas fixas impulsionadas por motores de corrente contínua independentes. Dispõe de
módulos suplementares de visão, telemetria e garra mecânica. Em sua circunferência
existem oito sensores de infravermelho que detectam a proximidade do obstáculo. É
utilizado no estudo de controle e estabilização de sistemas não-holonômicos.

Figura 2.1 – Robô Khepera.

Podem-se citar vários trabalhos realizados dentro das escolas brasileiras.


Dentre eles cita-se os trabalhos realizados pelo Laboratório de Automação e Sistemas
da Escola Politécnica de São Paulo. Este laboratório dispõe de um AGV (Autonomous
Guide Vehicle), ARIEL, construído no mesmo laboratório, possuindo duas rodas
motrizes acionadas por motores de corrente contínua, além de possuir um computador
a bordo para operações de controle e interfaceamento.

A seguir serão mostrados os aspectos teóricos da robótica móvel. Assim como


a modelagem de manipuladores, serão desenvolvidas equações as quais permitirão ao
projetista controlar o robô móvel e assim definir os parâmetros que melhor realizem o
controle do móvel.

15
2.3 Modelo Cinemático do Robô Móvel

Cinemática é o estudo mais básico de como os sistemas mecânicos se


comportam. Em robôs móveis, é necessário entender o comportamento mecânico do
robô tanto para projetar robôs móveis apropriados para tarefas como para entender
como criar métodos de controle.
É notório que robôs móveis não são os primeiros sistemas mecânicos a exigir
este tipo de análise. Robôs manipuladores foram objeto de intenso estudo por mais de
30 anos. Em determinados casos, robôs manipuladores são muito mais complexos em
relação a modernos robôs móveis: Um robô soldador pode possuir cinco ou mais
juntas, enquanto recentes robôs móveis são simples maquinas com sistemas
diferencial de locomoção. Nos últimos anos, as comunidades dedicadas ao estudo da
Robótica alcançaram um grande entendimento da cinemática e, em muitos casos, da
dinâmica (ou seja, relacionando forcas e massas) de robôs manipuladores
[SIEGWART, 2004].

As comunidades de Robótica Móvel assumem muitas das questões


cinemáticas da comunidade de Robôs Manipuladores. O Espaço de Trabalho dos
robôs manipuladores é crucial porque ele define a extensão de possíveis posições que
podem ser alcançadas pelo fim do manipulador relativas ao referencial do sistema. O
Espaço de Trabalho de um Robô Móvel é igualmente importante porque ele define as
possíveis posições que um Robô Móvel pode atingir dentro de um ambiente. A
controlabilidade do Braço de um Robô define a maneira na qual a combinação da
atuação dos motores em vista do movimento do braço de uma determinada posição
para outra dentro do espaço de trabalho. De modo semelhante, a controlabilidade de
um robô móvel define possíveis trajetórias dentro de seu espaço de trabalho. A
dinâmica dos robôs impõe restrições adicionais sobre o espaço de trabalho e
trajetórias devido às considerações de massa e força. O robô móvel também é limitado
pela dinâmica: por exemplo, um alto centro de gravidade limita o raio de giro dentro
de certo conjunto de velocidades, devido ao perigo de tombamento.

O processo de entendimento do movimento de um robô começa com o


processo de descrição da contribuição que cada roda inclui na locomoção. Cada roda
tem uma importante contribuição no movimento do robô como um todo. Da mesma
forma, cada roda insere restrições no movimento do robô: por exemplo: não
permitindo o deslocamento lateral. Na seção seguinte é introduzida a notação que
permite expressar o movimento de um robô em um sistema de Referência Global
assim como em um sistema de Referência Local. Então, usando esta notação, é
demonstrada a construção de um simples Modelo de Cinemática Direta de
movimento, descrevendo como o robô como um todo se move em função de sua
geometria e do comportamento de cada roda. A seguir, será formalmente descrito as
restrições cinemáticas das rodas individualmente, e então combinadas para expressar
as restrições cinemáticas do robô como um todo.

2.3.1 Modelos Cinemáticos e Restrições

16
Descrever um modelo para o movimento do robô como um todo é um
processo bottom-up. Cada roda individualmente contribui com o movimento do robô
e, ao mesmo tempo, impõe restrições à sua locomoção. Rodas estão ligadas à
geometria do chassi do robô, e consequentemente suas restrições são combinadas
formando restrições no movimento geral do robô. Entretanto as forcas e restrições de
cada roda devem ser expressas com respeito a um consistente Sistema de Referencia.
Isto é particularmente importante em robótica móvel porque de sua natureza móvel;
um claro mapeamento entre o Sistema de Referência Global e o sistema de Referência
Local é necessário. Pode-se começar definindo formalmente estes Sistemas de
Referencia, então usando o resultante formalismo para obter a cinemática das rodas
individualmente e do robô como um todo.

2.3.1.1 Representação da Posição do Robô

Através desta análise pode-se modelar o robô como um corpo rígido sobre
rodas, operando em um plano horizontal. A dimensionalidade total do chassi do robô
é igual a três, duas para sua posição no plano e uma para orientação ao longo do eixo
vertical, o qual é ortogonal ao eixo do plano. É claro que existem graus de liberdade
adicionais e flexibilidade devido aos eixos da rodas, juntas das rodas, e rodas bobas.
Contudo o chassi do robô pode ser somente referenciado como um corpo rígido,
ignorando juntas ou graus de liberdade internos do robô e de suas rodas.

Figura 2.2 – Sistema de Referência Local e o Sistema de Referência Local de um Robô.

Para especificar a posição de um robô no plano estabelece-se uma relação


entre o Sistema de Referência Global do plano e o Sistema de Referência Local do
Robô, como na Figura 2.2. Os eixos XI e YI definem uma arbitrária base inercial do
plano como um Sistema de Referência Global a partir de uma origem O: {XI, YI}.
Para especificar a posição do robô, escolhe-se um ponto P sobre o chassi do robô e
então o Sistema de Referência Local. A posição P no Sistema de Referência Global é
especificada pelas coordenadas x e y, e a diferença angular entre o sistema global e o
local é dada por θ. Pode-se descrever a posição do robô como um vetor de três

17
elementos. Nota-se o subscrito I para mostrar a base desta posição como sendo em
relação ao sistema de referência global:

 x
ξ I =  y  (2.1)
θ 

A expressão acima formada pelo vetor ξ I é chamada de Postura do robô. Para


descrever o movimento do robô em termos de componentes motoras, será necessário
mapear o movimento ao longo dos eixos do sistema de referência global para o
movimento do sistema de referência local do robô. É claro que o mapeamento é uma
função da posição atual do robô. Este mapeamento é obtido usando a Matriz de
Rotação Ortogonal.

Figura 2.3 – Robô Móvel alinhado com um eixo global.

 cos θ senθ 0
R(θ ) = − senθ cos θ 0 (2.2)
 0 0 1

A matriz pode ser usada para mapear o movimento no sistema de referência


global {XI, YI} para o movimento em termos do sistema de referência local {XR, YR}.

18
Esta operação é denotada por R(θ )ξ&I porque a computação desta operação depende
do valor de θ:

ξ&R = R(θ )ξ&I (2.3)

π
Por exemplo, considerando o robô da Figura 2.3, tem – se um ângulo θ = ,
2
logo se pode facilmente computar a matriz de rotação instantânea R:
 0 1 0
π
R ( ) =  − 1 0 0 (2.4)
2
 0 0 1

Figura 2.4 – Um robô de tração diferencial em seu sistema de referência global.

Dada uma velocidade ( x& , y& , θ&) no sistema de referência global pode-se
computar os componentes de movimento ao longo dos eixos locais XR e YR. Neste
caso, devido ao ângulo do robô, o movimento ao longo de XR é igual a y& e ao longo
de YR é x& :

 0 1 0  x&   y& 
π & 
ξ R = R( )ξ I = − 1 0 0  y&  = − x& 
& (2.5)
2
 0 0 1 θ&   θ& 

2.3.1.2 Modelos de Cinemática Direta

Em casos mais simples, o mapeamento descrito na equação (2.3) é suficiente


para gerar uma formula que se obtenha a cinemática direta de um robô móvel: Como

19
o robô se move, dada sua geometria e as velocidades das rodas? A título de ilustração,
considere o exemplo mostrado na Figura 2.4.
Este robô com tração diferencial possui duas rodas, cada uma com diâmetro r.
Dado um ponto P no ponto central em relação às duas rodas motoras, cada roda tem
uma distância l de P. Dados r, l, θ, e a velocidade de rotação de cada roda, ϕ&1 e ϕ& 2 , a
modelo da cinemática direta pode prever a velocidade geral do robô como um todo no
sistema de referência global:

 x& 
ξ&I =  y&  = f (l , r ,θ , ϕ&1 , ϕ&2 ) (2.6)
θ& 

A partir da equação (2.3) tem-se que o movimento no sistema de referência


global pode ser obtido a partir do movimento no sistema de referência local:
ξ&I = R (θ ) −1ξ&R . Consequentemente, primeiro computa-se a contribuição de cada roda
no sistema referência local, ξ R .
Supondo que o sistema de referência local de um robô é alinhado de modo que
o robô se mova para frente ao longo do eixo +XR, como mostrado na Figura 2.2.
Primeiro considera-se a rotação de cada roda na velocidade de translação de P na
direção +XR. Se uma roda gira e a outra está parada, desde que o ponto P está no meio
entre as duas rodas, o robô se movimentará instantaneamente com metade da
velocidade: x&r1 = (1 / 2)rϕ&1 e x&r 2 = (1 / 2)rϕ&2 . Em um robô com tração diferencial,
estas duas contribuições podem simplesmente serem adicionadas para calcular a
componente xr de ξ&R . O valor de y& R é sempre igual à zero, pois nenhuma das rodas
contribui para o movimento ao longo deste eixo. Finalmente, é necessário calcular a
componente rotacional θ&R de ξ&R . Novamente as contribuições de cada roda podem
ser computadas individualmente e somadas posteriormente. Pode-se chamar a roda
direita de 1 e a esquerda de 2. Um giro para frente da roda 1 resulta em uma rotação
anti-horária no ponto P. A velocidade de rotação ω1 em P pode ser computada
porque a roda é se move instantaneamente ao longo do arco de círculo de raio 2l:

rϕ&1
ω1 = (2.7)
2l

O mesmo cálculo aplicado à roda esquerda é realizado e resulta em uma


rotação horária no ponto P:

− rϕ& 2
ω2 = (2.8)
2l

20
Combinando estas equações individuais resulta em um modelo cinemático
para o robô com tração diferencial do exemplo:

 rϕ&1 rϕ&2 
 2 + 2 
ξ&I = R(θ ) −1  0 
 (2.9)
 rϕ&1 + rϕ&2 
 2l 2l 
Esta aproximação para a modelagem cinemática provê informação sobre o
movimento de um robô dado as componentes das velocidades das rodas em casos
onde o robô move-se para frente. Para os vários tipos de robôs existentes será
necessária à mesma análise de modo a verificar as componentes levando em
consideração as restrições impostas pela geometria e pela estrutura. A seguir será
mostrado como se podem verificar as restrições impostas pelo uso de rodas
adicionais, chamadas caster.

2.3.1.3 Restrições Cinemáticas de Rodas

Para se determinar o modelo cinemático de um robô é necessário


primeiramente expressar as restrições sobre o movimento de cada roda. Como
mostrado na seção anterior, o movimento de cada roda pode ser posteriormente
combinado de forma a se obter o movimento do robô como um todo.
Existem quatro tipos principais de rodas, as quais possuem grandes diferenças
em suas propriedades cinemáticas. Os quatro principais tipos de rodas são: Roda
Padrão, com dois graus de liberdade; Roda Castor, com dois graus de liberdade e um
com uma distancia em relação à junta de rotação; Roda Sueca, com três graus de
liberdade e a Roda Bola ou Esférica. Na figura a seguir são mostrados os tipos de
rodas.

Figura 2.5 – Tipos de Rodas: (a) Roda Padrão. (b) Roda orientada fora do centro (Caster). (c)
Roda Sueca. (d) Roda Bola ou Esférica

21
Neste trabalho a proposta é estudar e verificar o comportamento de um robô
com tração diferencial, e usando uma roda do tipo Caster, este trabalho mostrará as
restrições vindas neste tipo de roda. Com o intuito de facilitar o modelo serão
realizadas algumas suposições. Será assumido que o plano das rodas sempre
permanece vertical e que em todos os casos sempre existe apenas um ponto de contato
entre a roda e o chão. Isto é, a roda entrará em movimento apenas sob condições de
rolamento puro.

2.3.1.3.1 Roda orientada fora do Centro (Caster)

Rodas orientadas fora do centro são capazes de guiar ao redor de um eixo


vertical. Entretanto, diferente da roda padrão, o eixo vertical de rotação no castor não
passa através do ponto de contato com o piso. A Figura 2.6 descreve um castor,
demonstrando que a especificação formal da posição de um castor requer um
parâmetro adicional.

O ponto de contato é representado por B, o qual é conectado por um


alongamento rígido AB de comprimento fixo d para o ponto A, este por sua vez fixa o
eixo vertical sobre o qual B gira e possui uma posição especificada dentro sistema de
referência do robô, como mostrado na Figura 2.6. Assume-se que o plano da roda está
alinhado com AB em todos os instantes. O Castor possui dois parâmetros variantes
em função do tempo: ϕ (t ) representa a rotação da roda sobre o tempo; β (t ) denota o
ângulo da direção e a orientação de AB sobre o tempo.

Figura 2.6 – Uma roda Castor e seus parâmetros.

A restrição para o rolamento pode ser vista na equação a seguir:

sen(α + β ) − cos(α + β ) (−l ) cos( β )R(θ )ξ&I − rϕ& = 0 (2.10)

22
A geometria do Castor possui significativo impacto sobre as restrições de
deslizamento. O tema crítico é que a força lateral sobre a roda ocorre no ponto A
porque este é o ponto de acoplamento da roda com o chassi do robô. A restrição pode
ser vista na equação a seguir:

cos(α + β ) − sen(α + β ) d + lsen( β )R(θ )ξ&I + rβ& = 0 (2.11)

Na equação (2.11), qualquer movimento ortogonal ao plano da roda deve ser


balanceado por um equivalente e oposta.

2.3.1.3.2 Rodas Suecas

Neste caso somente uma das componentes da velocidade do ponto de contato


da roda com o chão é considerada igual à zero, diferentemente das rodas
convencionais onde todas as componentes da velocidade do ponto de contato são
iguais a zero, ao longo do movimento. A posição da roda com relação ao sistema de
referência móvel é descrito como para as rodas convencionais fixas, por três
parâmetros, α , β , l . Apenas um parâmetro mais é requerido para caracterizar a
direção em relação ao plano da roda, segundo o qual a componente da velocidade no
ponto de contato é zero, e será o ângulo γ . A equação de restrição cinemática é
escrita da seguinte forma.
- Ao longo da direção representada por γ na Figura 2.7

− sen(α + β + γ ) cos(α + β + γ ) l cos( β + γ )R (θ )ξ&I + r cos γϕ (2.1


2)

Figura 2.7 – Rodas Suecas.

23
2.3.1.4 Mobilidade e Classificação de Robôs Móveis

Um robô móvel pode ser equipado com N rodas, podendo ter Nf rodas fixas, Nc
rodas convencionais orientadas no centro, Nfc orientadas fora de centro, e Nsw rodas
suecas [JACOBO, 2001].

N=Nf+Nc+Nfc+Nsw

A configuração do robô no plano cartesiano é completamente descrita pelos


seguintes vetores de coordenada.

 x
Postura ξ I =  y 
θ 

Coordenada Angular β c (t )eβ fc (t )

 ϕ f (t ) 
 ϕ (t ) 
Coordenadas de Rotação, ângulos de rotação das rodas
ϕ =  c ϕ
em torno do centro. ϕ fc (t ) 
 
ϕ sw (t )

Os subíndices indicam respectivamente: f – roda fixa; c – orientada no centro;


fc – orientada fora do centro; sw – roda sueca.
O conjunto {ξ , β c (t ), β fc (t ), ϕ } é chamado de coordenadas de configuração,
sendo o número de coordenadas de configuração igual a:

N f + 2 N c + 2 N fc + N sw + 3 (2.13)

As equações de restrições cinemáticas podem ser resumidas em uma forma


matricial compacta:

J1 ( β c, β fc) R(θ )ξ& + J 2ϕ& = 0 (2.15)

C1 ( β c, β fc) R(θ )ξ& + C2ϕ& = 0 (2.17)

Com as seguintes definições:

24
 J1 f 
 J (β ) 
 
J1 ( β c , β fc ) =  1 f c ; J 2 = diag (r , r cos γ ) (2.18)
 J1 fc ( β fc )
 J1sw 

J1f, J1c, Jfc, Jsw são matrizes com dimensões (Nf x 3), (Nc x 3). (Nfc x 3), (Nsw x
3), respectivamente, cuja forma vem diretamente das equações de restrições ao longo
do plano da roda. J2 é uma matriz (N x N) cuja diagonal são os raios das rodas suecas
o qual é multiplicado por cos γ .

 C1 f   0 
   
c1 ( β c , β fc ) =  C1 f ( β c ) ; C 2 =  0  (2.19)
C ( β ) C 
 1 fc fc   2 fc 

C1f, C1c, C1fc são matrizes com dimensões (Nf x 3), (Nc x 3), (Nfc x 3), cuja
forma vem diretamente das restrições na direção ortogonal ao plano da roda. C2fc é
uma matriz diagonal constante com elementos iguais a d, parâmetro das Nfc rodas
orientadas fora do centro (Caster).

Pode-se introduzir a seguinte suposição com respeito à configuração das rodas


suecas:

π π
A1: Para cada roda sueca: γ ≠ . O valor de γ =
corresponderá à direção
2 2
da componente zero da velocidade que é ortogonal ao plano da roda. Tal roda seria
sujeita a uma restrição idêntica à restrição de não escorregamento das rodas
convencionais, daí o benefício de implementar rodas suecas.

Considerando as (Nf + Nc) primeiras equações de (2.17), pode-se escrevê-las


explicitamente como:

C1 R(θ )ξ& = 0 (2.20)

C1c ( β c ) R(θ )ξ& = 0 (2.21)

Essas equações implicam que o vetor R (θ )ξ& pertence ao espaço nulo da


matriz C1* ( β c ) definida como:

25
 C 
C1* ( β c ) =  1 f  (2.22)
C1c ( β c )

R (θ )ξ& ∈ N C1* ( β c ) (2.23)

Sabe-se, assim, que o posto (rank) da matriz C1* ( β c ) ≤ 3 e depende do


projeto do robô móvel. Se C1* ( β c ) = 3 , então R(θ )ξ& = 0 e qualquer movimento no
plano é impossível. Uma interpretação geométrica das equações (2.20) e (2.21) é que
em cada instante o movimento do robô pode ser visto com uma rotação em torno do
centro instantâneo de rotação (CIR) cuja posição relativa ao sistema de referência
móvel pode ser variável no tempo. Em cada instante também o vetor de velocidade de
qualquer ponto no chassi do robô é perpendicular à linha reta que une este ao ponto
CIR. Isto é ilustrado na Figura 2.8 e é equivalente à condição de posto C1 ( β c ) ≤ 2
*

Figura 2.8 – Centro Instantâneo de Rotação (CIR).

O grau de mobilidade para um robô móvel pode então ser definido da seguinte
forma

δ m = dim N [C1* ( β c )] = 3 − posto[C1* ( β c )]

O posto[C1c ( β c )] é o número de rodas convencionais orientadas no centro que


poder ser guiadas independentemente para dirigir o robô. Este número é chamado
grau de dirigibilidade δ s .

δ s = posto[C1c ( β c )]

Podem-se agrupar os robôs móveis são singulares ou não-degenerados em


cinco classes diferentes de interesse prático, de acordo com o grau de mobilidade δ m
e de dirigibilidade δ s . As classes são separadas de acordo com o par ( δ m , δ s ).

26
Tabela 2.1 – Classes de robôs Móveis de acordo com ( δ m , δ s ).
δm 3 2 2 1 1
δs 0 0 1 1 2

Essas classes são formadas devido às seguintes condições sobre δ m e δ s :


• O grau de mobilidade δ m satisfaz a inequação

1 ≤ δm ≤ 3 (2.24)
Os limites indicam o número máximo de graus de liberdade que o robô pode
ter no plano, as translações nas direções x, y e a rotação θ, e com no mínimo um
movimento possível.

• O grau de dirigibilidade δ s satisfaz a inequação

1 ≤ δs ≤ 2 (2.25)

O limite superior aplica-se para os robôs sem rodas fixas (Nf = 0), e o inferior
corresponde aos robôs sem rodas convencionais orientadas no centro (Nc = 0).
81687054

• Além disso, satisfaz a inequação:

2 ≤ δm + δs ≤ 3 (2.26)

Não existem classes onde δ m + δ s = 1 , pois corresponderiam a uma rotação


em torno do CIR (Centro Instantâneo de Rotação) fixo. Também não se admitem
classes onde δ m > 2 , e δ s = 2 , para que o robô não apresente uma estrutura singular.

2.3.1.5 Modelo Cinemático de Postura

São modelos matemáticos de estado que dão uma descrição geral dos robôs
móveis, permitindo que se discutam as propriedades de manobra do robô.
Possibilitam uma análise do robô dentro do contexto de sistemas não-holonômicos
[JACOBO, 2001].

Permite inferir sobre conceitos de Mobilidade, Dirigibilidade e


Manobrabilidade do robô móvel. Como é descrito pela equação (2.23),

27
R (θ )ξ& ∈ N C1* ( β c ) , conclui-se que para qualquer instante de tempo t, existe um vetor
de tempo η (t ) , entrada de controle, tal que.

ξ& = R Τ (θ )Σ( β c )η (2.27)

A dimensão do vetor η (t ) é o grau de mobilidade δ m do robô. Quando o robô


não tem rodas orientáveis ao centro a matriz é constante e:

ξ& = R Τ (θ )Ση (2.28)

De outra forma o modelo pode ser descrito como:

β& c = ζ (2.29)

As expressões acima podem ser consideradas como a representação no espaço


de estados do sistema (chamado modelo cinemático de postura), onde a coordenada
de postura ξ e possivelmente a coordenada β c são variáveis de estado, enquanto η e
ζ são consideradas como as entradas de controle.
Esta interpretação deve ser tomada com cuidado. Em um sistema físico as
verdadeiras entradas de controle são os torques dos motores, fornecidos pelos motores
embarcados: O modelo cinemático do espaço de estados é de fato um subsistema do
modelo dinâmico geral.
O modelo cinemático de postura pode ser escrito de uma forma compacta,
como é mostrado a seguir:
z& = B ( z )u
Se Nc = 0 z =ξ ;

B (z) = R T
(θ ) Σ
u =η
Se Nc ≠ = 0 ξ 
z =  ;
β c 
 RT (θ )Σ 0
B( z ) =  ;
 0 1

η 
u= 
ζ 

28
Para cada classe de robô móvel entre as definidas na Tabela 2.2, existe um
modelo cinemático de postura diferente. Os robôs da mesma classe podem ser
representados pelo mesmo modelo, variando a posição do ponto P e do referencial.
Para cada robô móvel com rodas pertencente à mesma classe, o mesmo
modelo cinemático de postura é o utilizado. Para um móvel com rodas é sempre
possível selecionar o ponto de referência P e a base {X, Y} solidário ao chassi do robô
tal que o modelo cinemático de postura tome exatamente a forma correspondente ao
tipo de robô dado na .

• Para o tipo de robô (3,0) o ponto de referência P e a base {X, Y} podem ser
escolhidos arbitrariamente.
• Para o tipo de robô (2,0) o ponto de referência P é escolhido como um ponto do
eixo das rodas fixas, com X alinhado ao longo deste eixo.
• Para o tipo de robô (2,1), selecionamos uma das rodas centradas e P é escolhido
como o centro desta roda, com (X, Y) escolhido arbitrariamente.
• Para o robô (1,1), selecionamos uma das rodas centradas, P; e a intersecção da
linha perpendicular que passa pelo centro da roda selecionada, com o eixo comum
da rodas fixas. L é a longitude perpendicular do robô.
• Para o tipo de robô (1,2) se seleciona duas rodas orientáveis centradas. P é
escolhido como o ponto médio da distancia entre os centros destas duas rodas,
com X alinhado ao longo da linha que junta estes centros. L é a distância média
entre estes centros

A seguir será mostrada a descrição do robô Winofire implementado neste


trabalho, descrevendo suas características e como estas afetam em sua cinemática.

Tabela 2.2 – Resumo dos Modelos Cinemáticos de Postura.


Σ( β c ) Modelo Cinemático de Postura z& = B( z )u
TIPO z ou Σ
x  x&   cosθ − senθ 0  η1 
    
(3,0) y Matriz Identidade  y&  =  senθ cosθ 0 η 2 
θ  θ&   0 0 1 η 3 
  
x  0 0  x&   − senθ 0 
      η 1 
(2,0) y 1 0  y&  =  cos θ 0  
η
θ 0 1
 
 θ&   0
   1  2 
x
 x&   − sen(θ + β c1 ) 0 0
y  − senβ c1 0     η1 
   y&   cos(θ + β c1 ) 0 0  
(2,1) θ  cos β c1 0  θ&  =  η 2 
 0 1 0  
β c1  0 1      ζ1
 β&  
 c1   0 0 1  

29
x
 x&   − Lsenθsenβ c 3 0
y  0     η1 
   y&   L cosθ cos β c 3 0  
(1,1) θ  Lsenβ c 3   θ&  =   
 cos β  cos β c 3 0  
β c3  c3 
    ζ 1 
 β&   1 
 c1   0

 − L( senβ c1 sen(θ + β c 2 ) 
 0 0
x  x&   + senβ sen(θ + β )) 
  c2 c1
y  − 2 Lsenβ c1senβ c 2   y&   L( senβ c1 cos(θ + β c 2 )  η 1 
   θ&  =  + senβ cos(θ + β )) 0 0  
(1,2)
θ  Lsen( β c1 + β c 2 )     c2 c1  ζ 1 
β c1  sen( β − β )   β& c1   sen( β c 2 − β c1 ) 0 0  ζ 
   2
 β&   1 0
c2 c1

β c3  c2  
0

 0 0 1 

30
Capítulo 3
3 Concepção do Projeto do Robô
Móvel

Para o funcionamento correto de um robô autônomo é mister conhecer como


os dados vindos do ambiente externo serão processados e quais decisões serão
tomadas com bases nestas informações. Logo, o circuito eletrônico é de grande
importância dentro de um sistema robótico tanto o conhecimento de suas
funcionalidades como de seu desempenho.

Uma opção para a gestão do processamento das informações dentro de um


sistema robótico é o uso de microcontroladores. Em termos gerais, os
microcontroladores podem ser definidos como processadores que foram encapsulados
com memória, interface de entrada/saída de dados e dispositivos periféricos. Entre os
periféricos estão conversores A/D (analógico/digital), temporizadores/contadores,
interface para comunicação serial, watchdog programável, etc. Em outras palavras,
são computadores encapsulados em um único invólucro. Tornaram-se comuns em
diversos ramos da indústria a partir do final da década de 70 e atualmente existe um
número crescente de opções disponíveis no mercado.

A família de microcontroladores AVR ATMEGA da Atmel é largamente


usada em aplicações simples de robótica devido às suas características e de suas
funcionalidades. A seguir pode ser vista uma visão geral das funcionalidades deste
microcontrolador.

3.1 O microcontrolador Atmel AVR ATMEGA16

31
O Atmega16 é um microcontrolador 8-bit de tecnologia CMOS e arquitetura
RISC (Reduced Instruction Set Computer ) [ATMEL,2004]. Uma característica
interessante deste dispositivo é sua capacidade de executar uma instrução por ciclo de
relógio. Esta taxa de execução de instruções foi possível de ser alcançada em virtude
da conexão direta de seus 32 registradores de propósito geral com a unidade lógica
aritmética. Esta característica o deixa em vantagem quando comparado com os
concorrentes da família PIC da Microchip Technology. Além do mais, apesar de ser
RISC, possui um grande número de instruções (130), o que permite melhor
otimização de código de alto nível em linguagem C.

Com o objetivo de maximizar o desempenho e o paralelismo, o AVR segue


arquitetura Harvard, em que os barramentos associados às memórias de dados e do
programa são distintos. Além disso, utiliza-se a técnica do pipeline, em que, enquanto
uma instrução começa a ser executada, uma outra já é buscada na memória de
programa para que a mesma possa ser executada no próximo ciclo de relógio. A
Figura 1 ilustra o diagrama de blocos do microcontrolador [Atmel 2004].

32
Figura 3.1 – Diagrama de Blocos do Microcontrolador [ATMEL].

3.1.1 Ferramentas de desenvolvimento

3.1.1.1 Hardware

Para desenvolvimento com o Atmega16, o hardware mínimo sugerido é dado


por um circuito de referência e pela gravadora BSD, mostrados na Figura 2. O circuito
de referência contém o mínimo para o Atmega16 funcionar apropriadamente,
podendo ser conectado diretamente a uma protoboard para desenvolvimento. A
gravadora possui um conector para o circuito de referência e um outro para porta

33
paralela de microcomputadores PC. As seções seguintes apresentam seus circuitos e
descrevem os procedimentos de montagem.

3.1.1.1.1 Gravadora BSD

A gravadora é um circuito faz a interface entre o microcomputador e o


microcontrolador, realizando as tarefas de programação e configuração. Elas são
projetadas de acordo com as particularidades técnicas de cada microcontrolador e
utilizam geralmente as portas serial ou paralela do PC. Para o caso do AVR, existem
alguns modelos comerciais, mas também existem muitos outros gratuitos, que podem
ser montados sem muita dificuldade. Seu diagrama esquemático está disponível na
Figura 3.2. A gravadora é conectada ao microcomputador pela porta paralela, e ao
microcontrolador por meio de um flat cable com conector de 10 pinos na
extremidade. Sua alimentação é proveniente do circuito em que a gravadora será
conectada. Os pinos 9 e 10 do conector da gravadora não devem ser usados. Desta
forma, se o usuário cometer o erro de inverter o conector, isto não deve causar a
queima de componentes.

Figura 3.2 – Diagrama Esquemático da Gravadora BSD.

3.1.1.2 Software

34
Tendo disponíveis a gravadora e o circuito do microcontrolador, deve-se
providenciar o ambiente computacional que se comunicará com o dispositivo de
acordo com o protocolo estabelecido pelo fabricante.
De fato, necessita-se ao menos de um compilador e/ou um montador para o
microcontrolador, e um programa responsável pela gravação do dispositivo por meio
do hardware da gravadora.
O programa utilizado neste trabalho foi o WinAVR, um pacote de programas
em código aberto para desenvolvimento com microcontroladores da família AVR da
Atmel no ambiente Windows, que inclui um editor de texto, debugger, bibliotecas em
C, entre outros. Entre os programas mais importantes que acompanham o pacote, são
descritos a seguir:
• Programmer’s Notepad: Ambiente Integrado de Desenvolvimento, que é gratuito,
e permite ser configurado para trabalhar com as ferramentas de desenvolvimento
AVR;

• Avrdude: programa de gerenciamento da gravadora em linha de comando DOS,


que permite gravar o dispositivo, ler seu conteúdo e alterar os registros de
configuração da família AVR;

• Avrdude-gui: versão caixa de diálogo do avrdude, de interface amigável com o


usuário. Este programa não permite alterar a configuração interna do
microcontrolador, pois opera em modo seguro. A única forma de alterar os
registros de configuração é por meio do programa avrdude;

• Avr-toochain: Na verdade, isto não é um programa, mas um conjunto de


ferramentas necessárias para compilar um programa para o AVR utilizando
ferramentas GNU (software livre).

3.1.1.2.1 WinAVR

Como mencionado anteriormente, o WinAVR é um pacote de vários softwares


utilitários para desenvolvimento com a família AVR. O site da distribuição é
http://winavr.sourceforge.net/. Sua instalação é trivial, bastando seguir os passos
indicados pelo programa de instalação. Entretanto, no caso de Windows 2000/XP,
faz-se necessário ter privilégios de administrador do sistema. Após instalação, é
criado o diretório WinAVR na raiz de algum disco do microcomputador, assim como
\WinAVR\bin;\WinAVR\utils\bin; é inserido na variável de ambiente PATH. Se os
programas que compõem o WinAVR não funcionarem após instalação, deve-ser
verificar se a variável PATH foi realmente alterada. Caso não, sua alteração deve ser
feita manualmente.

3.1.1.2.2 Programmer’s Notepad

Programmer’s Notepad 2 (PN) é uma ambiente de desenvolvimento integrado


(IDE, do inglês) que acompanha o pacote. Através do PN é possível criar um projeto,

35
que é composto de um ou mais arquivos, editar os arquivos e compilar o projeto. A
Figura 9 mostra o PC aberto com um projeto, em que se vêem os arquivos que
compõem o projeto (main.c e makefile), o arquivo main.c aberto para edição com
diferentes cores para as estruturas do programa em linguagem C, e uma janela de
saída, que contém mensagens de compilação. Quando instalado, o PN deve ser o
programa default para abrir arquivos com a extensão .pnproj, que é a extensão do
arquivo principal de um projeto.

3.1.1.2.3 Avrdude

A gravadora BSD nada mais é do que uma peça de hardware que precisa ser
comandada por um programa. Um destes programas é o Avrdude, que é um programa
que permite gerenciar várias gravadoras, entre elas a BSD. O Avrdude é
disponibilizado atualmente em duas versões, disponíveis no diretório WinAVR/bin:
• avrdude-gui.exe: versão caixa de diálogo do Avrdude, mostrada na Figura 10. Esta
versão é a mais utilizada devido à facilidade de configuração. O mínimo de
configuração que se sugere é:

• Flash e EEPROM: desabilitar Write, Read e Verify (nenhum programa ou dado


será gravado);

• Dispositivo (-p Device): Atmega16;

• Gravadora (-c Programmer): bsd;

• Porta de conexão da gravadora (-p Port): lpt1, para porta paralela 1;

• Arquivo a ser gravado na memória Flash: selecionar o nome do arquivo, que em


geral é o .hex resultante da compilação, e selecionar as opções de escrita (Write),
verificação (Verify) e formato Autodetect, que identifica o formato pela extensão
do arquivo. Na memória Flash deve ser gravado o programa a ser executado;

• Arquivo a ser gravado na memória EEPROM: procedimento similar ao da


gravação na memória Flash, sendo que na memória EEPROM devem ser gravados
dados que podem ser lidos pelo programa a ser executado (geralmente alguma
configuração);

• Ao clicar no botão Execute, a gravação é realizada. Todos os procedimentos de


gravação são mostrados no espaço “Output”, sendo que mais detalhes são
mostrados se a opção “-v Enable verbose output” estiver habilitada. Se houver
algum erro, podem-se consultar as mensagens “Output” para identificar a origem
do problema.

• avrdude.exe: versão linha de comando do Avrdude. Na verdade, o avrdude-


gui.exe nada mais é do que uma interface gráfica que executa avrdude.exe com as
opções mostradas no espaço “Command line” da caixa de diálogo. Uma das
limitações do programa avrdude-gui.exe é que ele não escreve ou lê os registros

36
de configuração do microcontrolador (Seção 4.2), apesar de disponibilizar na sua
interface espaços reservados a estes registros. Esta característica permite que
usuários menos avisados cometam algum erro de configuração por utilizarem à
interface gráfica. A única forma de alterar os registros de configuração é por meio
do programa avrdude.exe, que deve ser lançado a partir de uma linha de comando
DOS. A Seção 4.2 descreve com mais detalhe alguns procedimentos básicos de
uso do avrdude.exe. Ao leitor recomenda-se consultar o anual do avrdude.exe que
acompanha o CD de iniciação ao AVR (ver Anexo A).

Para qualquer versão do Avrdude, se estiver usando qualquer versão do


Windows diferente do Windows 98, certifique-se de que o driver GiveIO está
instalado. Esta verificação pode ser feita clicando no botão Status do espaço reservado
ao GiveIO no avrdude-gui.exe. Caso a mensagem mostrada em Output seja negativa,
instale GuiveIO clicando no botão Install. Se este procedimento não funcionar, copie
o arquivo giveio.sys que está no diretório WinAVR/bin para o diretório System32 do
Windows.

3.1.1.2.4 AVR – Toochain

O projeto GNU (GNU is not GNU)1 foi iniciado em 1984 por Richard
Stallman com o objetivo de criar um sistema operacional totalmente livre, além de
ferramentas para desenvolvimento. O projeto iniciou com as ferramentas, e abraçou o
sistema operacional Linux em 1991 como alvo dos desenvolvimentos. Entretanto,
muitas das ferramentas também funcionam no Windows, permitindo assim uma maior
difusão do software livre. Desta forma, é possível desenvolver programas para vários
microprocessadores e microcontroladores sem a necessidade de comprar ferramentas
comerciais. Para o caso do AVR, tem-se, entre outras ferramentas, o avr-gcc
(compilador C), avr-g++ (compilador C++), avr-as (assembler) e avr-ld (linker). No
WinAVR, estas ferramentas estão instaladas no diretório \WinAVR\bin.

37
Figura 3.3 – Interface Gráfica do avrdude

Uma descrição detalhada é feita no site


http://www.gnu.org/manual/manual.html, em que se tem apenas o nome da
ferramenta sem o prefixo avr-.
Com a instalação do WinAVR, na barra de ferramentas é criada uma pasta
WinAVR com alguns links, entre eles o avr-libc manual. Este link aponta para o
arquivo \WinAVR\doc\avr-libc\ avr-libc-user-manual\index.html que é o manual da
biblioteca LibC para a família AVR. LibC é a na verdade um conjunto de bibliotecas
básicas para se trabalhar com linguagem C/C++ para a família AVR. O manual da
biblioteca LibC é sempre bastante consultado para desenvolvimento.

3.1.2 Procedimentos Básicos para o Funcionamento

3.1.2.1 Registros de configuração

O Atmega16 possui alguns registros de configuração que não são acessíveis


pelo programa gravado na memória flash. Estes registros definem a configuração de
hardware do microcontrolador, habilitando ou não algumas de suas características.

38
Estes registros são descritos na seção Memory Programming do manual [Atmel
2004]. São registros de proteção de código e dados (Lock bit byte), fusíveis de
configuração (Fuse High byte e Fuse Low Byte), bytes de assinatura do dispositivo e
byte de calibração do oscilador interno. Destes registros, um dos mais usados é o Fuse
Low byte pois determina principalmente a principal fonte de relógio da CPU.

Para alterar qualquer um dos registros de configuração, isto somente pode ser
feito através do programa avrdude.exe operando no modo unsafe (opção -u). Por
exemplo, a seqüência de operações abaixo permite obter os valores gravados nos
registros Fuse High byte (hfuse no avrdude) e Fuse Low byte (lfuse no avrdude):

Figura 3.4 – Distribuição dos Relógios [ATMEL 2004]

C:\>avrdude.exe -p atmega16 -c bsd -P lpt1 -t -u


avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9307
avrdude> d hfuse
>>> d hfuse
0000 d9 |+ |
avrdude> d lfuse
>>> d lfuse
0000 e1 |b |
avrdude> quit
>>> quit
avrdude.exe done. Thank you.

39
No exemplo acima, a opção -t permite entrar no modo terminal, em que o
usuário usa alguns comandos para manipular os registros. Para conhecer melhor o
avrdude, sugere-se uma leitura no manual avrdude.pdf.

Um procedimento comum consiste em alterar o valor do Fuse Low byte para


redefinir a fonte de relógio do microcontrolador. Isto pode ser feito no modo terminal
como no exemplo acima, mas também usando linha de comando através de

C:\>avrdude.exe -p atmega16 -c bsd -P lpt1 -t -u lfuse:w:0xEF:m

Este comando muda a fonte de relógio para cristal externo, o que permite fazer o
ATmega16 operar a até 16MHz.

3.1.2.2 Seleção da freqüência do relógio

A freqüência do relógio determina, em última instância, a velocidade de


execução do programa no microcontrolador. No microcontrolador AVR, o sinal de
relógio pode ser obtido através de cinco diferentes fontes (ver Figura 11):

• Circuito RC interno calibrado, que é um circuito que gera algumas freqüências


padrão utilizando um oscilador interno baseado em resistor e capacitor. A precisão
é da ordem de ±3%;

• Cristal externo, segundo conexão mostrada na Figura 12(a). Esta fonte de relógio
é a de maior precisão, podendo chegar a até 16MHz. Quando o bit CKOPT do
registro Fuse High byte é programado em 0, a saída XTAL2 possui faixa de
variação de 0 a VCC, tornando o microcontrolador mais imune à interferência
externa e permitindo XTAL2 ser conectado a uma porta CMOS/TTL. Por outro
lado, com CKOPT programado em 1, a faixa de variação de XTAL2 é bem
pequena, o que implica também em menor consumo de energia;

• Circuito RC externo, que requer um resistor e capacitor ligado externamente


conforme mostrado na Figura 12(b). A freqüência do relógio passa a ser f = 1/
(3RC), mas com pequena precisão. Esta configuração é interessante quando se
deseja trabalhar com baixas freqüências, o que implica em muito baixo consumo;

• Oscilador externo, que gera uma onda quadrada a ser aplicada ao pino 9 (XTAL1)
do Atmega16, conforme mostrado na Figura 12(c). O período da onda quadrada
não pode sofre alteração de mais de 2% de seu período entre dois ciclos
consecutivos. Se isto ocorrer, o comportamento do microcontrolador será
imprevisível;

• Ressonador cerâmico externo, que apresenta o mesmo tipo de conexão que o


modo cristal externo. Ressonadores cerâmicos são mais baratos, embora não tão
precisos quanto os cristais de quartzo.

40
Ainda de acordo com a Figura 11, cada um dos sinais de relógio gerados pode
ser desligado independentemente (ver seção Power Managament and Sleep Modes,
em [Atmel 2004]). Além disso, é importante destacar que o Watchdog Timer, que
funciona como um dispositivo de proteção que reinicia o microcontrolador após o não
cumprimento de determinada condição em um intervalo de tempo especificado, é
conectado diretamente à fonte de relógio, e não à Unidade de Controle do Relógio,
para proporcionar maior confiabilidade ao sistema.
Deve ser observado que o Atmega16 já vem de fábrica configurado para fonte
de relógio dada pelo circuito RC interno a 1MHz [Atmel 2004]. Para alterar a fonte de
relógio a ser utilizada, deve-se escrever no registro de configuração Fuse Low Byte,
conforme ilustrado pela Seção 4.2. A Tabela 3.1 apresenta as fontes de relógio e o
conteúdo que deve conter os bits CKOPT (registro Fuse High Byte) e CKSEL3,
CKSEL2, CKSEL1 e CKSEL0 (registro Fuse Low Byte). Algumas vezes, algum
efeito externo provoca a gravação do Fuse Low Byte para 00h, que implica no uso de
fonte externa de relógio. Se isto ocorrer, um procedimento utilizado consiste em
aplicar uma onda quadrada de aproximadamente 1MHz em XTAL1 e refazer a
programação dos registros usando o avrdude.exe.
Uma vez alterada a fonte do relógio, a alteração somente tem efeito após
reiniciar o microcontrolador. Isto significa que da próxima vez que avrdude for usado
para gravação, à nova fonte de relógio já passa a ser utilizada. O mesmo ocorre com o
programa da memória Flash, que passa a operar com a nova fonte de relógio
selecionada.

3.1.3 Funcionalidades particulares

Esta seção pretende ilustrar o uso de algumas das principais funções


disponibilizadas pelo AVR. Essas funções são, em alguns casos, implementações em
hardware de funcionalidades que até poderiam ser executadas por software, mas que,
dessa forma, poderiam resultar em um código bastante complexo, além de um custo
computacional consideravelmente maior.

Figura 3.5 – Conexões de fontes externas de relógio: (a) Cristal/ressonador externo, C1 = C2 =


22pF, (b) Circuito RC externo com freqüência dada por f = 1/ (3RC) e (c) Oscilador externo
[Atmel 2004]

41
Tabela 3.1: Seleção da fonte de relógio e bits CKOPT, CKSEL3..0 do registro
Low FuseByte

3.2 Sensores

Uma das mais importantes características de robôs móveis é o uso de sensores


externos os quais os tornam capazes de operar em ambientes desconhecidos. Estes
sensores permitem ao robô extrair informações do ambiente de operação e daí
tomarem decisões para locomoção.

A entrada de informação em um sistema inteligente ocorre sempre por meio de


sensores. A informação dos sensores é sempre enviada ao módulo de processamento
do sistema inteligente, que transformará os sinais oriundos em informação útil
(suarez,2000).

Sistemas com pouca ou nenhuma capacidade sensorial externa, na maioria das


vezes são limitados a operações de seqüência fixa em ambientes altamente
estruturados e não podem fornecer nenhum grau de autonomia substancial ou
adaptabilidade (Rezende,1992). Deste modo, pode-se perceber que um robô sem
sensores não é capaz de lidar devidamente com mudanças em seu ambiente.

Existem em robótica diversos modos de classificar os sensores, como por


exemplo, em sensores de percepção interna e de percepção externa do robô. Outra
classificação dos sensores para robótica móvel os divide em: sensores de luz
(fotosresistores, detectores de proximidade com infravermelho), sensores de força
(microchaves, resistências sensíveis à força), sensores de som (microfones, sonar),
sensores de posição e orientação (“encoders”, giroscópios, sensores de inclinação,
bússola), sensores “internos” (nível de bateria, corrente, temperatura) (Jones,1993).

42
3.2.1 Sensores de Toque

Sensores de toque são dispositivos que indicam o contato entre eles próprios e
algum outro objeto. Normalmente são usados em robôs industriais ou manipuladores.
A informação de toque pode ser usada, por exemplo, para a localização e
reconhecimentos de objetos, indicando ainda a magnitude da forca de contato entre os
dois. Um dos objetivos de se usar sensores deste tipo é identificar e controlar a
interação entre o robô e o ambiente onde ele se encontra.

3.2.2 Sensores de Distância

São dispositivos que medem a distancia entre um ponto de referência


(normalmente outro sensor) e os objetos no campo de atuação do mesmo. Tais
sensores são usados na navegação de robôs e nos desvio de obstáculos, onde a
localização destes objetos é necessária. Existem várias técnicas para efetuar os
cálculos para determinar essa distancia: o método da triangulação, a abordagem da luz
estruturada e a técnica dos ultra-sons. Os sensores de distancia mais utilizados nos
robôs móveis autônomos inteligentes são os sensores ultra-som

Figura 3.6 – Um exemplo de sensor de distância

3.2.3 Sensores de Proximidade

Os sensores de distancia discutidos anteriormente estimam a distância entre o


sensor e um determinado objeto. Os sensores de proximidade, por outro lado, têm
geralmente uma saída binária que indica a presença de um objeto a uma distancia pré-
definida. Os sensores de proximidades mais utilizados nos robôs móveis autônomos
inteligentes [Rezende, 1992] são sensores infravermelhos. Em algumas aplicações é
suficiente determinar a presença (ou ausência) de um objeto em certa posição no lugar

43
de medir a distancia ao objeto [Bradshaw , 1990]. Embora este tipo de sensor não
devolva a distancia entre ele e um objeto qualquer, eles podem identificar se algo está
presente ou não, dentro do seu cone de detecção [Jones, 1993].

Figura 3.7 – Um exemplo de um sensor de proximidade.

3.2.4 Sensores de Visão

O uso destes sensores tem despertado o interesse de muitos pesquisadores e é


atualmente uma das áreas de pesquisa mais ativas [Han, 1994] [Ohya, 1998]. O
avanço das pesquisas em sistemas de visão tornou possível o surgimento de robôs que
interagem com o ambiente, recebendo informações de diversas formas para processá-
las e, em função delas, executar determinadas tarefas. A recepção e obtenção de
informações do meio são feitas pelos “olhos” do robô, ou seja, por uma câmara de
televisão e/ou algum outro sensor juntamente com o equipamento de digitalização e
“hardware/software” necessários para o interfaceamento entre os mesmos.

Pode-se concluir que uma exigência fundamental para a solução do problema


de navegação [Bradshaw,1990] é a existência de um sistema sensorial, permitindo a
aquisição dos dados necessários para o controle do seu movimento.

3.3 Motores

Um motor elétrico converte a energia elétrica em energia mecânica. Existe


uma ampla variedade de motores para uso em robótica: Motores eletromagnéticos, a
corrente contínua (DC), motores eletromagnéticos a corrente alternada (AC) e as
variações de cada um [Jones, 1993].

Em adição aos motores eletromagnéticos DC e AC, existem um outro tipo de


motor que não é eletromagnético: o motor ultra-sônico piezelétrico. Este motor possui
como uma de suas características girar a baixa velocidade com um torque maior.

44
Os motores DC são usados na robótica móvel porque a fonte de energia neles
é tipicamente uma bateria DC.
Na figura a seguir pode ser observado o princípio do funcionamento de um
motor elétrico.

Um simples motor DC. A armadura continua a Quando a armadura fica na


Quando a bobina está rotacionar. horizontal, o comutador
carregada, um campo inverte a direção da
magnético é gerado ao corrente ao longo da
redor da armadura. O lado bobina, invertendo o
esquerdo da armadura é campo magnético. O
empurrado para longe do processo então se repete
lado esquerdo e dirigido sucessivamente.
em direção à esquerda,
causando a rotação.

3.4 Baterias

Para um robô ser dito autônomo, no sentido de energia, é necessário possuir


uma fonte de energia (potência) que seja capaz de armazenar energia para permitir ao
robô executar as tarefas determinadas, e que seja embarcada no próprio robô.

No caso de robôs móveis, o uso de baterias é uma boa solução. Uma bateria
converte energia química em energia elétrica. A seguir são apresentadas algumas
características importantes [Jones, 1993]:

Recarregáveis: Uma unidade que gera energia através de uma reação química
e que não pode ser recarregada é uma célula primária. Uma que pode ser recarregada
é dita de secundária ou bateria de armazenamento.
Densidade de Energia (Wh/Kg): É a máxima quantidade de energia por
unidade de massa.
Capacidade (Amp-hora ou mA-h): É a máxima armazenada na célula. Ela é o
produto da Densidade de Energia vezes a massa da bateria.
Voltagem (V): Esta é uma característica particular da reação química na
bateria, dependendo do estado de carga da célula.

45
Resistência Interna (Ohm): Quando se faz um curto circuito, a corrente
fornecida por uma bateria é limitada pela resistência interna da mesma.
Taxa de Descarga (mA): É a taxa na que uma bateria é descarregada. A taxa
máxima
Após estes aspectos práticos da construção de um robô móvel, será mostrado o
estudo do modelo cinemático do robô WinoFire. Este estudo segue o mesmo padrão
dos modelos cinemáticos no Capítulo 2.

3.5 Modelo Cinemático do Robô WinoFire

O robô WinoFire é um robô móvel de base circular de 80 mm


aproximadamente. Possui duas rodas convencionais fixas no chassi com eixos
colineares, paralelos ao lado menor, com raio de 30 mm, e uma roda orientada fora do
centro (Caster) como apoio, sem nenhum controle, a qual não será tomada em conta
para o seu modelo cinemático. O controle de direção é realizado por meio da variação
de rotação das rodas fixas (motrizes). A Figura 3.8 esquematiza o chassi do robô.

Figura 3.8 – Representação do robô WinoFire

3.6 Modelo Cinemático de Postura do WinoFire

Considera-se o robô como livre, movendo-se numa superfície lisa, e um ponto


fixo P dentro do robô. Pode-se modelar este robô como se fosse um objeto circular
movendo-se no espaço, conforme mostrado na Figura 3.8. Num espaço livre pode-se
direcionar o robô a uma posição com uma orientação. Logo o espaço de configuração
tem três dimensões, duas de translação e uma de rotação. Esta configuração foi
mostrada no começo por ξ ( x, y, θ ) , onde x e y são as coordenadas do ponto médio P,
entre as duas rodas motrizes, na base inercial e θ ∈ [0,2π ] é o ângulo entre o eixo x da

46
base inercial e o eixo principal do robô, variante durante o movimento. Deste modo, o
movimento é restringido pela equação [Latombe, 1996]:

y& cos θ − x&senθ = 0

Esta restrição não-holonômica diz que o robô somente pode mover-se na


direção normal ao eixo das rodas motrizes, satisfazendo as condições de rolamento
puro e não escorregamento [Fierro, 1998].

Da Tabela 2.2, o modelo cinemático de postura para os robôs móveis


pertencentes à classe (2,0) tipo “char” à qual o WinoFire pertence é:

 x&  − senθ 0
   η 
 y&  =  cos θ 0  1 
η
θ&   0
   1   2 

Esta é a equação cinemática de movimento em termos de velocidade linear e


velocidade angular, onde η 1 ≤ Vmax e η 2 ≤ Wmax . Vmax e Wmax são as velocidades
máximas lineares e angular do ponto P que se deseja controlar.

Uma restrição não-holonômica é uma equação não integrável que envolve os


parâmetros de configuração e as suas derivadas (parâmetros de velocidade). Tais
restrições não reduzem o espaço de configuração atingível pelo robô, mas reduzem a
dimensão do espaço dos possíveis movimentos (por exemplo o espaço das direções da
velocidade) em alguma dada configuração [Latombe, 1996].

O comportamento do robô é bastante simples: desviar de obstáculos de forma


autônoma, isto é, sem intervenção externa para cumprir a tarefa de forma correta. O
fluxograma a seguir mostra de maneira resumida o comportamento do robô:

47
Figura 3.9 – Fluxograma do comportamento do robô WinoFire

Da figura Figura 3.9, pode se observar que o robô afere as distâncias a partir
de sensores ultra-sônicos e com esta informação escolhe-se a direção apropriada para
seguir. Este é um algoritmo simples, porém existem inúmeras aplicações onde pode
aplicá-lo, cabendo ao projetista julgar onde melhor adequa-se.

48
Capítulo 4
4 Resultados

Neste capítulo será apresentado o robô WinoFire, resultado deste trabalho de


conclusão de curso. Num futuro próximo, ele servirá como base para estudos mais
profundo dentro da robótica móvel autônoma. Será apresentado o robô em algumas
configurações especiais bem como em determinadas tarefas. Ainda neste capítulo é
apresentado um resumo das conclusões obtidas durante todo o desenvolvimento do
robô. Finalmente serão apresentadas propostas para trabalhos futuros.

4.1 Robô Autônomo Inteligente: WinoFire

O robô WinoFire foi construído com o intuito de ser um robô móvel cm uma
inteligência embarcada de modo que cumpra determinadas tarefas de forma
autônoma. Este robô foi construído pela equipe ProficLan, composta pelos alunos
Andrei Silva, Carlos Alexandre, Gustavo Myrria, Moisés Bastos e Walter Nakano. A
partir de materiais alternativos, tais como placas de acrílico, servo-motores de
aeromodelos, o robô foi construído. Estes materiais possibilitaram construir um robô
móvel com um preço acessível, não obstante a suas muitas funcionalidades. Como
mostrado na seção anterior, o robô possui duas rodas motrizes e uma roda orientada
fora de centro. Por meio do movimento relativo entre estas duas rodas a postura do
robô é definida.

Figura 4.1 - Desenho do WinoFire feito em CAD

49
Os motores utilizados foram o HOBBICO-55, bastante difundido em projetos
de aeromodelos. Para inferir o ambiente externo, foram utilizados dois sensores ultra-
sônicos. Estes sensores realizam a medição da distância de obstáculos. Ainda o robô
conta com um sensor infravermelho na região inferior e um sensor para identificação
de chamas, HAMAMATSU. Este sensor é bastante útil para a verificação de chamas
de fogo em um ambiente.

Figura 4.2 – Robô WinoFire com suas partes principais

Para o processamento das informações vindas dos sensores, foi utilizado um


microcontrolador da família ATMEGA, da ATMEL. Por meio de um programa
computacional criado de antemão, o robô toma de forma autônoma decisões, tais
como deve seguir em frente? Existem obstáculos em seu Espaço de Trabalho? Etc.

4.2 Características do robô WinoFire

O robô WinoFire foi concebido como um robô autônomo móvel de tração


motora diferencial. Para tanto, torna-se necessário o uso de alguns elementos que
possibilitem o seu funcionamento correto. Pode – se destacar como divisões principais
do robô WinoFire como visto a seguir:

50
4.2.1 Motores

A locomoção do robô é realizada a partir de duas unidades motoras formadas


por dois servo-motores HOBBICO, adaptados para trabalhar como motores DC. A
direção de locomoção e a velocidade de rotação são controladas a partir tensão
aplicada sobre a polaridade dos motores. Para controle de velocidade ainda é utilizado
modulação na largura de pulso ( Pulse Width Modularion – PWM ), de modo que o
robô possa ter um controle de posição a partir da variação da tensão aplicada sobre os
motores.
Ainda foi utilizado um servo-motor HOBBICO como um atuador para o
suporte do sensor ultra-sônico móvel. Deste modo, o sensor ultra-sônico para
distância pode medir em várias posições, assim otimizando os recursos.

4.2.2 Sensores

O robô WinoFire possui diversos tipos de sensores, cada um aplicado


dependendo do resultado desejado. Para a medição de distância do ambiente ao redor
do robô são utilizados dois sensores ultra-sônicos. Estes sensores possuem boa
acuracidade e permitem a medição da distancia por meio do tempo que uma onda
sonora precisa para atingir um obstáculo e voltar.

Figura 4.3 - Detalhe da Montagem do Sonar e seu suporte montado sobre servo-motor

Ainda o robô possui um sensor ultravioleta HAMAMATSU. Este sensor é


capaz de informar quando existe uma chama de fogo em um ambiente. Uma
informação como esta pode ser aplicada em sistemas de segurança ou ainda em robôs
de vigilância.

4.2.3 Bateria

Para alimentar o robô durante a execução de tarefas é utilizado uma bateria de


Chumbo de 12 V, possuindo 1.3 mAh. Uma bateria como esta tem grande influência
na inércia do sistema, pois possui massa considerável quando comparado ao conjunto.

51
4.2.4 Sistema Eletrônico

Neste sistema temos o microcontrolador, os circuitos integrados auxiliares e


todos os componentes passivos encontrados no robô. O microcontrolador realiza o
processamento das informações vindas dos sensores e de forma autônoma realiza as
decisões para certo estado. No robô WinoFire é utilizado um ATMEGA16 da família
AVR da ATMEL. Como circuitos integrados auxiliares podem-se citar o driver para
os motores, circuito para o sensor ultravioleta entre outros.

4.3 Testes e Resultados

O robô WinoFire foi submetido a uma bateria de testes para averiguar suas
capacidades e julgar os métodos e soluções encontradas para o cumprimento de
determinadas tarefas.
Para tanto, robô foi exposto às seguintes situações:
• Vagar em um sistema estruturado;
• Desviar de obstáculos que impedem o livre transcurso do robô livremente;
• Identificação de uma chama de fogo.

Dentro de um ambiente plano, sem maiores desníveis o robô apresentou um


bom desempenho, fazendo um percurso dependendo do estado de seus sensores.
Como o robô foi desenvolvido para desviar de obstáculos, ao verificar a proximidade
de um obstáculo, o robô realiza a leitura da distancia em outras direções de modo que
o robô possa desvia de obstáculos. Esta característica torna-se de grande aplicação em
ambientes onde o homem não tem como atuar, como em tubulações e dutos. Assim o
robô pode fazer seu percurso levando em conta os obstáculos que estão adiante dele.
O desempenho dos motores foi bom, mostrando que o sistema PWM obteve uma
performance adequada para a aplicação. Os sensores ultra-sônicos foram os grandes
protagonistas para o cumprimento da tarefa de desvio de obstáculos. O seu bom
desempenho aliado ao processamento do microcontrolador foram de grande
importância. Como um sistema acoplado a este robô móvel, existe o sensor
identificador de chamas, o sensor ultravioleta HAMAMATSU. Com apenas uma
chama de um fósforo a uma certa distancia o robô pode ser acionado enviando um
sinal para o microcontrolador. Um sensor como este pode ser aplicado em diversas
situações, desde apenas como um sistema de vigilância até em um robô bombeiro, que
traga embarcado um sistema para apagar chamas de fogo.

52
Capítulo 5
5 Conclusões

Ao fim deste trabalho é realizada uma verificação do estudo proposto com os


resultados alcançados. Nas seções a seguir serão apresentados as conclusões deste
trabalho e tópicos para futuros trabalhos.

5.1 Conclusões

O objetivo proposto para este trabalho foi alcançado: implementar um robô


móvel autônomo para estudo.
Foi estudado o problema cinemático, de forma de servir como um fundamento
para a aplicação prática, servindo esta como validação dos modelos cinemáticos
propostos.
A implementação do projeto é simples e bastante flexível, podendo ser
adicionados módulos conforme a necessidade da aplicação. Os componentes
utilizados são acessíveis, podendo o projeto ser reproduzido para estudo de práticos
na área da robótica móvel.
O trabalho com o microcontrolador ATMEGA16 também possibilitou o
controle de todo o robô, tanto os motores como o estado dos sensores a partir daí
realizando a tomada de decisões.
Ainda o controle de desvio de obstáculo foi bastante simples, porém de forma
eficaz, mostrando um bom desempenho nas situações propostas para este projeto.

5.2 Trabalhos Futuros

No robô WinoFire podem ser adicionadas muitas modificações. A seguir


seguem algumas propostas de trabalhos futuros:
• Melhoria no sistema de tomada de decisões por meio da implementação de uma
nova unidade de processamento lógica dedicada à tarefa do controle de decisões;

53
• Implementação de encoders nas rodas de modo que a velocidade do robô possa
ser controlada, e seja implementado um controle de malha fechada para a
movimentação do robô;
• Um sistema de rádio freqüência para a comunicação do robô com uma base
servidora;
• Desenvolvimento de um programa de simulação computacional para o estudo do
comportamento do robô em diversas situações.
• Construção de novos módulos atuadores acima da plataforma do robô WinoFire,
tais como braços manipuladores entre outros;
• Construção de um novo protótipo utilizando a tecnologia de micromáquinas.
Sendo este um micro-robô.

54
Referências Bibliográficas

Acroname Robotics. SRF10 Ultrasonic range finder. Disponível em:


http://www.robot-electronics.co.uk/htm/srf10tech.htm . Acesso em: Maio 2007.

Atmel Corporation. ATMEGA16. Disponível em:


http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf . Acesso
em: Maio 2007

Bradshaw, A. Sensors for Mobile Robots. Measurement + Control, v. 23, p. 48-52,


march 1990

Fierro, R; Lewis, F.L. Controlo f a Nonholonomic Mobile Robots using Neural


Networks. IEEE Transactions on Neural Networks, v. 9, n. 4, July 1998.

Han, Min-Hong; Rhee, Sang-Yong. Navigation Control for a Mobile Robot. Journal
of Robotic Systems, v. 11, n. 3, p. 169-179, 1994.

Jacobo, Justo.Desenvolvimento de um Robô Autônomo Móvel Versátil utilizando a


arquitetura Subsumption.Campinas – SP:Faculdade de Engenharia Mecânica.
Universidade Estadual de Campinas, 2001, 158p. Dissertação (Mestrado)

Jones, Joseph; Flynn, Anita. Mobile Robots – Inspiration to Implementation.


Wellesley, Massachussets: A.K. Peters Ltd, 1993, 345p.

LATOMBE, Jean-Claude, Robot Motion Planning, Massachussetts : Kluwer


Academic Publishers, 1996, 651p.

LAUMOND, J.P. Robot Planning and Control. Lectures Notes in Control and
Information Sciences 229, Springer, 1998, 343 p. Disponível na Internet:
www.laas.fr/~jpl/book.html

Muir, P.F., Modelling and Controlo f wheeled mobile robots. Pittsburgh, PA, USA:
Department of Eletric and Computer Engineering and Robotics Institute,
Canegie Mellon University, 1998. 335p. These (PhD.)

Ohya, Akihisa; Kosaka, Akio; Kak, Avinash. Vision based Navigation by a Mobile
Robot with Obstacle Avoidance Using Single-Camara and Ultrasonic Sensing.
IEEE Transactions on Robotics and Automation, v. 14, n. 6, p. 969-978, 1998.

Rezendo, M., Desenvolvimento de um Robô Móvel Autônomo Inteligente Utilizando


a Arquitetura de Assunção. Uberlândia – MG: Centro de Ciências Exatas e
Tecnologia, Universidade Federal de Uberlândia, 1992. 102p. Dissertação
(Mestrado)

55
SIEGWART, Roland. NOURBAKHSH, IIlah. Introduction to Autonomous Mobile
Robots. USA. Bradford Book. 2004. 317p.

Sourceforge ,WinAvr, Disponível em: http://winavr.sourceforge.net/index.html.


Acesso em: Maio 2007.

WinAvr Tutorial, Disponível em: http://winavr.scienceprog.com/. Acesso em: Maio


2007.

56

Você também pode gostar