microsoft word - monografia - gustavo myrria

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

Upload: api-3707981

Post on 07-Jun-2015

2.407 views

Category:

Documents


3 download

DESCRIPTION

My TCC

TRANSCRIPT

Page 1: Microsoft Word - Monografia - Gustavo Myrria

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

Page 2: Microsoft Word - Monografia - Gustavo Myrria

2

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

Page 3: Microsoft Word - Monografia - Gustavo Myrria

3

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

Page 4: Microsoft Word - Monografia - Gustavo Myrria

4

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!

Page 5: Microsoft Word - Monografia - Gustavo Myrria

5

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.

Page 6: Microsoft Word - Monografia - Gustavo Myrria

6

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.

.

Page 7: Microsoft Word - Monografia - Gustavo Myrria

7

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

Page 8: Microsoft Word - Monografia - Gustavo Myrria

8

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

Page 9: Microsoft Word - Monografia - Gustavo Myrria

9

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.

Page 10: Microsoft Word - Monografia - Gustavo Myrria

10

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.

Page 11: Microsoft Word - Monografia - Gustavo Myrria

11

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..

Page 12: Microsoft Word - Monografia - Gustavo Myrria

12

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.

Page 13: Microsoft Word - Monografia - Gustavo Myrria

13

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

Page 14: Microsoft Word - Monografia - Gustavo Myrria

14

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-

Page 15: Microsoft Word - Monografia - Gustavo Myrria

15

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.

Page 16: Microsoft Word - Monografia - Gustavo Myrria

16

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

Page 17: Microsoft Word - Monografia - Gustavo Myrria

17

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

Page 18: Microsoft Word - Monografia - Gustavo Myrria

18

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

=

θξ y

x

I (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.

−=

100

0cos

0cos

)( θθθθ

θ sen

sen

R (2.2)

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}.

Page 19: Microsoft Word - Monografia - Gustavo Myrria

19

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

IR R ξθξ && )(= (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:

−=

100

001

010

)2

R (2.4)

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

Dada uma velocidade ),,( θ&&& yx 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& :

−=

−==

θθξ

πξ

&

&

&

&

&

&

&& x

y

y

x

R IR

100

001

010

)2

( (2.5)

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

Page 20: Microsoft Word - Monografia - Gustavo Myrria

20

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:

),,,,( 21 ϕϕθθ

ξ &&

&

&

&

& rlfy

x

I =

= (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:

RI R ξθξ && 1)( −= . 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: 11 )2/1( ϕ&& rxr = e 22 )2/1( ϕ&& rxr = . 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 Ry& é 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:

l

r

21

1

ϕω

&= (2.7)

O mesmo cálculo aplicado à roda esquerda é realizado e resulta em uma rotação horária no ponto P:

l

r

22

2

ϕω

&−= (2.8)

Page 21: Microsoft Word - Monografia - Gustavo Myrria

21

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

+

+

= −

l

r

l

r

rr

RI

22

022

)(21

21

1

ϕϕ

ϕϕ

θξ&&

&&

& (2.9)

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

Page 22: Microsoft Word - Monografia - Gustavo Myrria

22

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:

0)()cos()()cos()( =−−+−+ ϕξθββαβα && rRlsen I (2.10)

Page 23: Microsoft Word - Monografia - Gustavo Myrria

23

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:

0)()()()cos( =+++−+ βξθββαβα && rRlsendsen I (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

cos)()cos()cos()( ++++++− γϕξθγβγβαγβα rRlsen I&

(2.12)

Figura 2.7 – Rodas Suecas.

Page 24: Microsoft Word - Monografia - Gustavo Myrria

24

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.

Postura

=

θξ y

x

I

Coordenada Angular )()( tet fcc ββ

Coordenadas de Rotação, ângulos de rotação das rodas em torno do centro.

ϕ

ϕϕϕϕ

ϕ

=

)(

)(

)(

)(

t

t

t

t

sw

fc

c

f

Os subíndices indicam respectivamente: f – roda fixa; c – orientada no centro; fc – orientada fora do centro; sw – roda sueca.

O conjunto { }ϕββξ ),(),(, tt fcc é chamado de coordenadas de configuração,

sendo o número de coordenadas de configuração igual a:

322 ++++ swfccf NNNN (2.13)

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

matricial compacta:

0)(),( 21 =+ ϕξθββ && JRJ fcc (2.15)

0)(),( 21 =+ ϕξθββ && CRC fcc (2.17)

Com as seguintes definições:

Page 25: Microsoft Word - Monografia - Gustavo Myrria

25

)cos,(;)(

)(),( 2

1

1

1

1

1 γββ

ββ rrdiagJ

J

J

J

J

J

sw

fcfc

cf

f

fcc =

= (2.18)

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 .

=

=

fcfcfc

cf

f

fcc

C

C

C

C

C

c

2

2

1

1

1

1 0

0

;

)(

)(),(

ββββ (2.19)

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: 2

πγ ≠ . O valor de

2

πγ = corresponderá à direção

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:

0)(1 =ξθ &RC (2.20)

0)()(1 =ξθβ &RC cc (2.21)

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

matriz )(*1 cC β definida como:

Page 26: Microsoft Word - Monografia - Gustavo Myrria

26

=)(

)(1

1*1

cc

fc C

CC

ββ (2.22)

)()( *1 cCNR βξθ ∈& (2.23)

Sabe-se, assim, que o posto (rank) da matriz 3)(*1 ≤cC β e depende do

projeto do robô móvel. Se 3)(*1 =cC β , então 0)( =ξθ &R 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 2)(*1 ≤cC β

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

)]([3)]([dim *1

*1 ccm CpostoCN ββδ −==

O )]([ 1 ccCposto β é 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δ .

)]([ 1 ccs Cposto βδ =

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δ ).

Page 27: Microsoft Word - Monografia - Gustavo Myrria

27

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

31 ≤≤ mδ (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

21 ≤≤ sδ (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:

32 ≤+≤ sm δδ (2.26)

Não existem classes onde 1=+ sm δδ , 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 2>mδ , e 2=sδ , 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),

Page 28: Microsoft Word - Monografia - Gustavo Myrria

28

)()( *1 cCNR βξθ ∈& , conclui-se que para qualquer instante de tempo t, existe um vetor

de tempo )(tη , entrada de controle, tal que.

ηβθξ )()( cR Σ= Τ& (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:

uzBz )(=&

Se Nc = 0 ξ=z ;

Σ= )()( θTRzB

η=u

Se Nc ≠ = 0

=c

zβξ

;

Σ=

10

0)()(

θTRzB ;

=ζη

u

Page 29: Microsoft Word - Monografia - Gustavo Myrria

29

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.

TIPO z )( cβΣ ou Σ Modelo Cinemático de Postura uzBz )(=&

(3,0)

θy

x

Matriz Identidade

=

3

2

1

100

0cos

0cos

ηηη

θθθθ

θsen

sen

y

x

&

&

&

(2,0)

θy

x

10

01

00

=

2

1

10

0cos

0

ηη

θθ

θ

sen

y

x

&

&

&

(2,1)

1c

y

x

βθ

10

0cos

0

1

1

c

csen

ββ

+

+−

=

1

2

11

1

1 100

010

00)cos(

00)(

ζηη

βθβθ

βθ

c

c

c

sen

y

x

&

&

&

&

Page 30: Microsoft Word - Monografia - Gustavo Myrria

30

(1,1)

3c

y

x

βθ

3

3

cos

0

c

cLsen

ββ

=

1

1

3

3

3

1 10

0cos

0coscos

0

ζ

η

ββθβθ

βθ c

c

c

c

L

senLsen

y

x

&

&

&

&

(1,2)

3

1

c

c

y

x

ββθ

+

)(

)(

2

12

21

21

cc

cc

cc

sen

Lsen

senLsen

ββββββ

−++

+++

+−

=

2

1

1

12

12

21

12

21

2

1

100

010

00)(

00))cos(

)cos((

00))(

)((

ζζη

βββθβ

βθββθβ

βθβ

ββθ

cc

cc

cc

cc

cc

c

csen

sen

senLsensen

sensenL

y

x

&

&

&

&

&

Page 31: Microsoft Word - Monografia - Gustavo Myrria

31

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

Page 32: Microsoft Word - Monografia - Gustavo Myrria

32

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].

Page 33: Microsoft Word - Monografia - Gustavo Myrria

33

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

Page 34: Microsoft Word - Monografia - Gustavo Myrria

34

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

Page 35: Microsoft Word - Monografia - Gustavo Myrria

35

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,

Page 36: Microsoft Word - Monografia - Gustavo Myrria

36

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

Page 37: Microsoft Word - Monografia - Gustavo Myrria

37

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.

Page 38: Microsoft Word - Monografia - Gustavo Myrria

38

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.

Page 39: Microsoft Word - Monografia - Gustavo Myrria

39

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.

Page 40: Microsoft Word - Monografia - Gustavo Myrria

40

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.

Page 41: Microsoft Word - Monografia - Gustavo Myrria

41

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]

Page 42: Microsoft Word - Monografia - Gustavo Myrria

42

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).

Page 43: Microsoft Word - Monografia - Gustavo Myrria

43

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

Page 44: Microsoft Word - Monografia - Gustavo Myrria

44

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.

Page 45: Microsoft Word - Monografia - Gustavo Myrria

45

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. Quando a bobina está carregada, um campo magnético é gerado ao

redor da armadura. O lado esquerdo da armadura é empurrado para longe do lado esquerdo e dirigido em direção à esquerda, causando a rotação.

A armadura continua a rotacionar.

Quando a armadura fica na horizontal, o comutador inverte a direção da corrente ao longo da bobina, invertendo o campo magnético. O

processo então se repete sucessivamente.

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.

Page 46: Microsoft Word - Monografia - Gustavo Myrria

46

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 ),,( θξ yx , onde x e y são as coordenadas do ponto médio P, entre as duas rodas motrizes, na base inercial e ]2,0[ πθ ∈ é o ângulo entre o eixo x da

Page 47: Microsoft Word - Monografia - Gustavo Myrria

47

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

0cos =− θθ senxy &&

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 é:

=

2

1

10

0cos

0

ηη

θθ

θ

sen

y

x

&

&

&

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

velocidade angular, onde max1 V≤η e max2 W≤η . 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ô:

Page 48: Microsoft Word - Monografia - Gustavo Myrria

48

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.

Page 49: Microsoft Word - Monografia - Gustavo Myrria

49

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

Page 50: Microsoft Word - Monografia - Gustavo Myrria

50

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:

Page 51: Microsoft Word - Monografia - Gustavo Myrria

51

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.

Page 52: Microsoft Word - Monografia - Gustavo Myrria

52

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.

Page 53: Microsoft Word - Monografia - Gustavo Myrria

53

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;

Page 54: Microsoft Word - Monografia - Gustavo Myrria

54

• 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ô.

Page 55: Microsoft Word - Monografia - Gustavo Myrria

55

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)

Page 56: Microsoft Word - Monografia - Gustavo Myrria

56

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.