sistemarobóticomóvelutilizandotécnicas … · 2018-06-12 · o que a modelagem cinemática faz...

67
Universidade Estadual de Londrina Centro de Tecnologia e Urbanismo Departamento de Engenharia Elétrica Lizandra Duarte de Oliveira Sistema Robótico Móvel Utilizando Técnicas de Controle Embarcado Baseado em ARM Cortex Para Navegação Autônoma Londrina 2018

Upload: truongtram

Post on 09-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Universidade Estadual de LondrinaCentro de Tecnologia e UrbanismoDepartamento de Engenharia Elétrica

Lizandra Duarte de Oliveira

Sistema Robótico Móvel Utilizando Técnicasde Controle Embarcado Baseado em ARM

Cortex Para Navegação Autônoma

Londrina2018

Page 2: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 3: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Universidade Estadual de Londrina

Centro de Tecnologia e UrbanismoDepartamento de Engenharia Elétrica

Lizandra Duarte de Oliveira

Sistema Robótico Móvel Utilizando Técnicas deControle Embarcado Baseado em ARM Cortex Para

Navegação Autônoma

Trabalho de Conclusão de Curso orientado pelo Prof. Dr. Leoni-mer Flávio de Melo intitulado “Sistema Robótico Móvel UtilizandoTécnicas de Controle Embarcado Baseado em ARM Cortex ParaNavegação Autônoma” e apresentado à Universidade Estadual deLondrina, como parte dos requisitos necessários para a obtenção doTítulo de Bacharel em Engenharia Elétrica.

Orientador: Prof. Dr. Leonimer Flávio de Melo

Londrina2018

Page 4: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Ficha Catalográfica

Lizandra Duarte de OliveiraSistema Robótico Móvel Utilizando Técnicas de Controle Embarcado Baseadoem ARM Cortex Para Navegação Autônoma - Londrina, 2018 - 65 p., 30 cm.Orientador: Prof. Dr. Leonimer Flávio de Melo1. Robótica Móvel. 2. Controle Reativo. 3. Sistemas Embarcados.I. Universidade Estadual de Londrina. Curso de Engenharia Elétrica. II.Sistema Robótico Móvel Utilizando Técnicas de Controle Embarcado Baseadoem ARM Cortex Para Navegação Autônoma.

Page 5: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Lizandra Duarte de Oliveira

Sistema Robótico Móvel Utilizando Técnicasde Controle Embarcado Baseado em ARM

Cortex Para Navegação Autônoma

Trabalho de Conclusão de Curso apresentado ao Curso deEngenharia Elétrica da Universidade Estadual de Londrina,como requisito parcial para a obtenção do título de Bacharelem Engenharia Elétrica.

Comissão Examinadora

Prof. Dr. Leonimer Flávio de MeloUniversidade Estadual de Londrina

Orientador

Prof. Dr. Aziz Elias Demian JuniorUniversidade Estadual de Londrina

Prof. Dr. Ernesto Fernando FerreyraRamirez

Universidade Estadual de Londrina

Londrina, 3 de fevereiro de 2018

Page 6: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Dedico este trabalho ao meu pai, que se foi cedo demais, e à minha mãe, que sempreesteve do meu lado.

Page 7: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Agradecimentos

Agradeço primeiramente a Deus por sempre me dar forças e iluminar o meu caminhoaté aqui. A minha mãe por me apoiar em todos os momentos, mesmo passando por difi-culdades próprias e também ao meu pai, que mesmo não estando presente neste momentoda minha vida, sempre mantive em meus pensamentos. Ao meu melhor amigo e parceirode vida, Denis, por se manter ao meu lado mesmo nos momentos difíceis, me dando forçaspara continuar. Agradeço também, aos amigos que fiz nessa trajetória, que tornaram essaexperiência muito mais agradável.

Por fim, agradeço ao meu orientador, Leonimer Flávio de Melo, por toda sua paciên-cia e dedicação, em me auxiliar no desenvolvimento deste trabalho, aos professores quese dispuseram a participar da banca examinadora e também a todos os professores dodepartamento de engenharia elétrica desta instituição.

Page 8: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 9: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Lizandra Duarte de Oliveira. Sistema Robótico Móvel Utilizando Técnicas deControle Embarcado Baseado em ARM Cortex Para Navegação Autônoma.2018. 65 p. Trabalho de Conclusão de Curso em Engenharia Elétrica - UniversidadeEstadual de Londrina, Londrina.

ResumoNeste trabalho serão apresentados os estudos acerca do desenvolvimento de um protótiporobótico móvel de navegação autônoma, bem como seu desenvolvimento efetivo utilizandotécnicas de controle embarcado baseadas em ARM Cortex. O objetivo proposto foi de-senvolver uma plataforma robótica de baixo custo capaz de navegar por um ambiente seminterferência humana e se baseando apenas em dados obtidos em tempo real através desensores. O protótipo desenvolvido conta com sensores de proximidade e velocidade, ecom um bússola digital que, combinados aos algoritmos desenvolvidos, entregam sistemasde desvio de obstáculos e controle de trajetória através de um microcontrolador da famíliaARM.

Palavras-Chave: 1. Robótica Móvel. 2. Controle Reativo. 3. Sistemas Embarcados.

Page 10: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 11: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Lizandra Duarte de Oliveira. Mobile Robotic System Using Embedded ControlTechniques ARM Cortex Based for Autonomous Navigation. 2018. 65 p. Mo-nograph in Electrical Engineering - Londrina State University, Londrina.

AbstractThis work will present the studies about the development of a mobile robotic prototypeof autonomous navigation, as well as its effective development using embedded controltechniques based on ARM Cortex. The objective was to develop a low-cost robotic plat-form capable of navigating an environment without human interference and relying onlyon data obtained in real time through sensors. The prototype developed has proximityand speed sensors, and a digital compass that, combined with the algorithms developed,deliver obstacle bypass systems and trajectory control through an ARM family microcon-troller

Key-words: 1. Mobile Robotics. 2. Reactive Control. 3. Embedded Systems.

Page 12: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 13: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Lista de ilustrações

Figura 1 – Aspirador de pó robótico Roomba . . . . . . . . . . . . . . . . . . . . . 21Figura 2 – Robô humanóide Asimo . . . . . . . . . . . . . . . . . . . . . . . . . . 22Figura 3 – O plano de referência global e a referência local do robô . . . . . . . . 23Figura 4 – Robô móvel com tração diferencial no plano global de referência . . . . 24Figura 5 – Diagrama de um sistema de navegação autônoma baseada em compor-

tamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Figura 6 – Diagrama de um sistema de navegação autônoma baseada em compor-

tamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Figura 7 – Exemplo de circuito para ponte H . . . . . . . . . . . . . . . . . . . . . 28Figura 8 – Percurso da corrente no circuito da ponte H na primeira combinação (00) 28Figura 9 – Percurso da corrente no circuito da ponte H na segunda combinação (01) 29Figura 10 – Percurso da corrente no circuito da ponte H na segunda combinação (10) 29Figura 11 – Percurso da corrente no circuito da ponte H na primeira combinação (11) 30Figura 12 – Diagrama do circuito interno do CI L298 . . . . . . . . . . . . . . . . . 30Figura 13 – Funcionamento da modulação por largura de pulso . . . . . . . . . . . 31Figura 14 – Funcionamento de um sensor ultrassônico . . . . . . . . . . . . . . . . 33Figura 15 – Diagrama temporal de uma medida de distância do módulo HC-SR04 . 33Figura 16 – Funcionamento de um sensor ultrassônico . . . . . . . . . . . . . . . . 34Figura 17 – Módulo HMC5883l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Figura 18 – Funcionamento de um encoder óptico . . . . . . . . . . . . . . . . . . . 36Figura 19 – Configuração de um barramento I2C . . . . . . . . . . . . . . . . . . . 38Figura 20 – Diagrama do circuito de um microcontrolador da linha STM32F100XX 39Figura 21 – Plataforma utilizada no protótipo vista de baixo . . . . . . . . . . . . . 41Figura 22 – Roda do tipo castor utilizada no protótipo . . . . . . . . . . . . . . . . 42Figura 23 – Posicionamento do sensor ultrassônico no protótipo . . . . . . . . . . . 43Figura 24 – Módulo de encoder óptico digital utilizado no protótipo . . . . . . . . . 44Figura 25 – Posição do encoder óptico para leitura de velocidade . . . . . . . . . . 44Figura 26 – Sensores posicionados na traseira do protótipo . . . . . . . . . . . . . . 45Figura 27 – Módulo bluetooth acoplado à traseira do protótipo . . . . . . . . . . . 45Figura 28 – Bateria de chumbo ácido utilizada para alimentação do sistema . . . . 46Figura 29 – Kit de desenvolvimento fixo na parte dianteira da plataforma robótica . 46Figura 30 – Diagrama básico das tarefas realizadas pelo robô através do software

desenvolvido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Figura 31 – Fluxograma inicial para desvio de obstáculos . . . . . . . . . . . . . . . 50

Page 14: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Figura 32 – Fluxograma inicial para controle de trajetória . . . . . . . . . . . . . . 52Figura 33 – Coleta de dados realizada através do aplicativo citado em diferentes

momentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Figura 34 – Comparação dos ângulos instantâneos do robô com e sem a rotina de

controle de trajetória . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Page 15: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Lista de tabelas

Tabela 1 – Classificação dos sensores . . . . . . . . . . . . . . . . . . . . . . . . . 32Tabela 2 – Pinos do módulo de sensor ultrassônico HC-SR04 e suas respectivas

funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Tabela 3 – Velocidades máximas com e sem a carga do protótipo . . . . . . . . . . 56

Page 16: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 17: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Lista de Siglas e Abreviaturas

ARM Advanced RISC MachineCC Corrente ContínuaEXTI External Interrupt/Event ControllerGPIO General-Purpose Input/OutputsLED Light Emitting DiodeµC MicrocontroladorPWM Pulse Width ModulationTIM TimerNVIC Nested Vectored Interrupt ControllerUSART Universal Synchronous Asynchronous Receiver Transmitter

Page 18: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3.1 Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3.2 Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 212.1 Robótica Móvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2 Sistema de Tração Diferencial . . . . . . . . . . . . . . . . . . . . 222.2.1 Modelagem Cinemática . . . . . . . . . . . . . . . . . . . . . . . . 222.2.1.1 Referência Local e Global . . . . . . . . . . . . . . . . . . . . . . . . 232.2.1.2 Cinemática Direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.3 Sistemas de Navegação Autônoma . . . . . . . . . . . . . . . . . 252.3.1 Controle Deliberativo . . . . . . . . . . . . . . . . . . . . . . . . . 252.3.2 Controle Reativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.3.3 Controle Híbrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.4 Atuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.4.1 Motores CC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.4.2 Ponte H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.4.2.1 Ponte H L298 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.4.3 PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.5 Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.5.1 Sensor Ultrassônico HC-SR04 . . . . . . . . . . . . . . . . . . . . 332.5.2 Bússola Digital HMC5883l . . . . . . . . . . . . . . . . . . . . . . 342.5.3 Encoder Óptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.6 Microcontroladores . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.6.1 Protocolo de Comunicação I2C . . . . . . . . . . . . . . . . . . . 372.6.2 Arquitetura dos microcontroladores . . . . . . . . . . . . . . . . 382.6.3 Microcontroladores da Linha STM32F100XX . . . . . . . . . . 38

3 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . 413.1 Descrição do Protótipo . . . . . . . . . . . . . . . . . . . . . . . . 413.1.1 Modelagem Cinemática do Protótipo . . . . . . . . . . . . . . . 413.1.2 Arquitetura de Controle . . . . . . . . . . . . . . . . . . . . . . . 42

Page 19: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

3.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2.1 Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2.1.1 Sensor Ultrassônico . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2.1.2 Bússola Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.2.1.3 Encoder Óptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.2.2 Atuadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.2.3 Módulo Bluetooth HC-05 . . . . . . . . . . . . . . . . . . . . . . . 453.2.4 Alimentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453.2.5 Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.3 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.1 Desvio de Obstáculos . . . . . . . . . . . . . . . . . . . . . . . . . 494.2 Controle de Trajetória . . . . . . . . . . . . . . . . . . . . . . . . . 514.2.1 Teste da Eficácia da Rotina de Controle de Trajetória . . . . . 534.3 Medição de Velocidade . . . . . . . . . . . . . . . . . . . . . . . . 544.4 Protótipo Completo . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5 DISCUSSÕES E CONCLUSÕES . . . . . . . . . . . . . . . . . 575.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

A APÊNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61A.1 Funções para Acionamento dos Motores . . . . . . . . . . . . . . 61A.2 Configuração dos Timers TIM1 e TIM2 . . . . . . . . . . . . . . 62A.3 Configuração da EXTI . . . . . . . . . . . . . . . . . . . . . . . . . 63A.4 Configuração da NVIC . . . . . . . . . . . . . . . . . . . . . . . . 63A.5 Configurações da USART para Comunicação via Bluetooth . 64

Page 20: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 21: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

19

1 Introdução

A robótica é um campo extremamente abrangente e interdisciplinar, sendo capaz devincular áreas tecnológicas à diversas outras áreas, trazendo facilidades e inovação.

De acordo com Wolf et al. (2009), a importância da robótica vem sendo mostradaatravés da sua inserção em diversas atividades na sociedade, com eletrodomésticos auto-matizados, robôs-cirurgiões, robôs-industriais, entre outros. Atualmente, uma sub-áreada robótica que vem atraído grande atenção dos pesquisadores e desenvolvedores é a ro-bótica móvel, que trata de robôs capazes de se locomover ao redor de ambientes, nãoestando fixados à uma localização.

O termo robótica móvel é comumente associado ao termo navegação autônoma. Umrobô móvel de navegação autônoma opera sem nenhuma interferência humana, utilizandosensores em sistema de malha fechada para adquirir informações sobre seu ambiente atuale sendo capaz de agir de acordo com as informações obtidas (SECCHI, 2012).

O estudo de sistemas de controle de malha fechada, assim como o estudo de modelagemdinâmica e cinemática, e sua implementação, são essenciais para o desenvolvimento daautonomia desejada, pois fazem com que o veículo adquira informações e tome decisões àrespeito de que caminho tomar, evitar obstáculos, etc. Um robô de navegação autônomapode ser utilizado para o mapeamento de áreas de difícil acesso, e também, futuramenteutilizado como protótipo para um veículo de navegação autônoma de maior escala e debaixo custo.

1.1 Motivação

Nos dias atuais, cada vez mais nos deparamos com sistemas que se mostram progressi-vamente mais e mais automáticos e autônomos, que necessitam gradativamente de menosinteração humana para controle e execução de tarefas, sejam estas do dia-a-dia ou tare-fas de aplicações específicas. Estes sistemas se utilizam de sensores, atuadores, memóriae controles para realizar estas atividades de forma autônoma. Para isto, é preciso quesejam feitos estudos em diversas áreas como controle, automação, sistemas embarcados,entre outras áreas que envolvem a engenharia. Por fim, um sistema de robô móvel denavegação autônoma como este pode ser aplicado numa gama infinita de funções, sejapara mapeamento, acesso a locais difíceis ou questões de acessibilidade.

Page 22: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

20 Capítulo 1. Introdução

1.2 Justificativa

O desenvolvimento de algoritmos e códigos que entreguem autonomia completa parauma plataforma robótica é essencial e tem sido uma gama muito explorada entre ospesquisadores, e o grande desafio está em garantir a integração e funcionalidade de diversossensores no sistema (sensores para localização em espaços aleatórios, desvio de obstáculos,correção de trajetória, controle de velocidade, entre outros), de forma simultânea e semque exista interferência entre eles. Este trabalho estuda os processos no desenvolvimentode um robô móvel com estas características.

1.3 Objetivos

1.3.1 Gerais

Desenvolver um protótipo robótico móvel de arquitetura reativa capaz de navegarautonomamente em um ambiente aleatório de forma satisfatória.

1.3.2 Específicos

• Criar uma rotina para desvio de obstáculos utilizando um sensor ultrassônico;

• Controlar o ângulo da trajetória do robô através de uma bússola digital;

• Implementar algoritmos de fácil entendimento e aprimoramento, que possam serutilizados futuramente por outros pesquisadores.

Page 23: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

21

2 Fundamentação Teórica

2.1 Robótica Móvel

A robótica móvel tem como objetivo estudar e desenvolver robôs capazes de se loco-moverem ao redor de ambientes desconhecidos e com obstáculos, com o mínimo de ou semqualquer interferência humana.

Os robôs móveis possuem diferentes configurações de dispositivos de hardware embar-cados, de acordo com a função e as tarefas para as quais são projetados. Alguns exemplossão: o aspirador de pó robótico Roomba, produzido pela iRobot (Figura 1) e o robôhumanóide desenvolvido pela Honda, Asimo (Figura 2), mas os dispositivos de hardwaregeralmente podem ser resumidos à atuadores e sensores.

Figura 1 – Aspirador de pó robótico Roomba

Fonte: iRobot (2016)

Segundo Wolf et al. (2009), um dos grandes desafios da robótica móvel é justamentecomo coletar as informações vindas dos sensores necessários para navegação, e manipulá-las de modo a gerar comandos e controlar os diferentes atuadores do robô, garantindoque a tarefa seja executada de modo correto e sem colocar em risco tanto o robô quantoaqueles que o cercam.

Os modelos mais comuns de robôs móveis são os robôs com rodas, de forma que pelomenos uma roda deve ser tracionada e com a possibilidade de rodas passivas ou livres(BRAUNL, 2006).

Page 24: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

22 Capítulo 2. Fundamentação Teórica

Figura 2 – Robô humanóide Asimo

Fonte: Honda (2011)

2.2 Sistema de Tração Diferencial

Um robô com sistema de tração diferencial tem sua movimentação baseada em duasrodas tracionadas independentes, uma em cada lado do robô. Desta forma o robô podefazer curvas apenas modificando a taxa de rotação ou o sentido de uma roda em relaçãoa outra, sem a necessidade de um eixo vertical para fazer curvas. Rodas livres do tipocastor podem ser adicionadas para equilibrar a plataforma (BRAUNL, 2006).

2.2.1 Modelagem Cinemática

Segundo Melo (2007), a cinemática é o estudo mais básico dos sistemas mecânicos,desta forma, seu estudo é necessário para se projetar o robô mais apropriado para deter-minada tarefa e para se criar o software de controle para o hardware do robô móvel.

O que a modelagem cinemática faz é obter relações matemáticas (geralmente equa-ções compostas por expressões matemáticas contendo senos e cossenos) que descrevem aconfiguração dos elementos mecânicos que compõem a estrutura do robô e em seguida,usá-las para obter a velocidade e aceleração de pontos na estrutura mecânica do robô,desta forma é possível obter uma prévia de como o robô irá se movimentar na prática.

Existem dois tipos de cinemática a serem estudadas, a direta e a inversa.

Page 25: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.2. Sistema de Tração Diferencial 23

2.2.1.1 Referência Local e Global

Para se determinar o posicionamento do robô no plano (Figura 3), se estabelece umarelação entre o plano de referência global e a referência local do robô, considerando oponto P como referência.

Figura 3 – O plano de referência global e a referência local do robô

Fonte: Melo (2007)

O posicionamento global do ponto P é especificado pelas coordenadas x e y, destaforma, o posicionamento do robô no plano global é dado pelo vetor de coordenadas x, ye θ, a letra I é utilizada para especificar que a base deste posicionamento está no planode referência global (MELO, 2007).

ξI =

x

y

θ

(2.1)

Para se descrever o movimento do robô em termos dos movimentos de seus compo-nentes (rodas ou outros atuadores), é necessário mapear o movimento ao longo dos eixosde referência global em relação ao movimento ao longo dos eixos de referência local doveículo. Este mapeamento deve ser uma função dos componentes de posicionamento dorobô e é obtido utilizando a matriz de rotação ortogonal (LAURA, 2006):

R(θ) =

cos θ sin θ 0

− sin θ cos θ 00 0 1

(2.2)

Page 26: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

24 Capítulo 2. Fundamentação Teórica

Esta matriz pode ser utilizada para mapear o movimento da referência global emrelação à referência local, desta forma:

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

2.2.1.2 Cinemática Direta

A definição da cinemática direta de um robô móvel é de extrema importância poispermite estimar o vetor velocidade instantânea final do veículo em relação ao referencialinercial global, a partir dos valores locais de velocidade angular dos motores, distânciaentre rodas e diâmetro delas.

O modelo cinemático direto pode ser obtido reescrevendo a equação 2.3 em função dasvariáveis globais conhecidas: o diâmetro de cada roda tracionada (D), suas respectivasvelocidades angulares (φ1 e φ2), e a distância entre elas (L). Desta forma, Melo (2007)define, então, baseado na Figura 4, o modelo de cinemática direta para robôs de traçãodiferencial:

x

y

θ

=

cos θ − sin θ 0sin θ cos θ 0

0 0 1

D2 (φ1 + φ2)

0DL

(φ1 − φ2)

(2.4)

Figura 4 – Robô móvel com tração diferencial no plano global de referência

Fonte: Melo (2007)

Page 27: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.3. Sistemas de Navegação Autônoma 25

2.3 Sistemas de Navegação Autônoma

Um robô móvel de navegação autônoma é, por definição, um robô independente dequalquer intervenção humana, ou seja, consegue navegar utilizando apenas informaçõesobtidas pelo próprio sistema, como localização e proximidade de obstáculos, sendo assimpossível o mapeamento de ambientes e a trajetória de rotas otimizadas.

Segundo Secchi (2012), as duas grandes características que separam os robôs móveisautônomos de qualquer outro veículo são:

• Percepção: Um robô móvel autônomo deve ser capaz de obter informações sobreo ambiente em que se encontra através de sensores a bordo;

• Raciocínio: Um robô móvel deve ser capaz de planejar suas próximas ações atravésdas informações obtidas.

As estratégias de controle de robôs móveis são diversas, mas centradas em duas estra-tégias principais, o controle deliberativo e o controle reativo.

2.3.1 Controle Deliberativo

De acordo com Secchi (2012), as estratégias envolvendo controle deliberativo são base-adas em modelos criados previamente, de forma que o ambiente em que o robô se encontrae seu respectivo modelo devem ser exatamente iguais para que o robô consiga navegar.

Um robô móvel controlado com estratégias de controle deliberativo dificilmente con-segue navegar em um ambiente com obstáculos dinâmicos.

Por outro lado, por realizar uma análise prévia do ambiente, com as estratégias decontrole deliberativo é possível saber se a tarefa proposta ao robô pode ser realizada e emsob quais condições do ambiente.

2.3.2 Controle Reativo

As estratégias de controle reativo são completamente opostas ao controle deliberativo,se baseando em um esquema de ações por reflexo. Neste esquema o ambiente é o estímulo(distância de objetos, temperatura, luz, etc), gerando uma ação do robô dependendode seu objetivo, desta forma, a programação destes robôs é basicamente composta porfunções de controle simples do tipo "se-então", fazendo com que o sistema responda rápidoe tenha baixo custo computacional (SECCHI, 2012).

Por outro lado, este tipo de controle pode gerar redundâncias por não haver nenhumtipo de planejamento, como por exemplo, o robô pode enfrentar o mesmo obstáculo di-versas vezes por não armazenar informações.

Page 28: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

26 Capítulo 2. Fundamentação Teórica

2.3.3 Controle Híbrido

Da junção das estratégias de controle reativo e deliberativo, temos a navegação baseadaem comportamento ou controle híbrido, que agrupa as melhores qualidades de ambasestratégias: a capacidade de planejamento do controle deliberativo e a capacidade dereagir ao ambiente do controle reativo.

Em um sistema de navegação baseado em comportamento (Behaviour-Based Navi-gation), os dados necessários são obtidos ao subdividir a tarefa principal em pequenastarefas. Por exemplo, podemos ter uma rotina que se concentra em desviar de obstá-culos, enquanto outra se concentra em criar uma rota para chegar ao local desejado.Desta forma, é possível ter várias sub rotinas funcionando simultaneamente para atingiro objetivo principal (SERAJI; HOWARD, 2002).

Neste tipo de sistema, não se tem nenhuma informação prévia do ambiente em que orobô é inserido, de forma com que a navegação deve acontecer se baseando apenas nasinformações recebidas por sensores, o fluxograma básico pode ser visto na Figura 5.

Figura 5 – Diagrama de um sistema de navegação autônoma baseada em comportamento

Fonte: A própria autora

Este tipo de sistema de navegação autônoma é análogo a um sistema de controle demalha fechada, considerando que o sistema precisa estar em funcionamento para receberinformações dos sensores, assim como precisa da informação dos sensores para se manterem funcionamento. Ou seja, a saída do sistema determina seu comportamento, diferentede um sistema de controle deliberativo que obtém suas informações antes de começar anavegação.

2.4 Atuadores

Segundo Romano (2002), atuadores são componentes que convertem energia elétrica,hidráulica ou pneumática, em potência mecânica.

Os principais atuadores utilizados em robôs móveis são os motores combinados comrodas ou esteiras, mais especificamente os motores de corrente contínua.

Page 29: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.4. Atuadores 27

2.4.1 Motores CC

Os motores tipo corrente contínua (CC) são amplamente utilizados por serem com-pactos e seu torque se manter numa faixa constante para grandes variações de velocidade,porém necessitam de sensores de posição angular (encoder) e de velocidade (tacômetro)para o controle de posicionamento em malha fechada. A máxima eficiência mecânicadestes motores normalmente ocorre a velocidades elevadas, portanto é comum o uso decaixas de redução para se obter a redução de velocidade e consequentemente o aumentode torque necessários à transmissão de potência mecânica ao elemento movido.

A Figura 6 mostra o modelo linear efetivo para motores DC.

Figura 6 – Diagrama de um sistema de navegação autônoma baseada em comportamento

Fonte: Braunl (2006)

Em um robô móvel, é imprescindível a capacidade de fazer duas coisas com o motorDC: que o eixo gire nos dois sentidos (horário e anti-horário) e controlar sua velocidade.A ponte H resolve o primeiro problema e o método de PWM resolve a segunda.

2.4.2 Ponte H

Uma ponte H é um circuito que satisfaz a necessidade de que o motor gire nos doissentidos, levando o robô para frente ou para trás.

A Figura 7 mostra um circuito para ponte H utilizando transistores, é possível visua-lizar que a disposição de seis componentes lembra uma letra H, por isso, o nome.

As duas entradas digitais Reverse Input e Forward Input controlam o sentido derotação do motor. Desta forma, existem quatro combinações possíveis que entregamresultados diferentes.

1. Ambas entradas em nível lógico baixo (00):

O resultado desta combinação pode ser visto na Figura 8. Apenas os dois transistoresPNP são acionados, entregando a mesma tensão de alimentação aos dois terminaisdo motor, de forma que não existe circulação de corrente, portanto o motor não éacionado.

Page 30: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

28 Capítulo 2. Fundamentação Teórica

Figura 7 – Exemplo de circuito para ponte H

Fonte: Sistema Embutido (2016)

Figura 8 – Percurso da corrente no circuito da ponte H na primeira combinação (00)

Fonte: Sistema Embutido (2016)

2. Forward em nível lógico baixo e Reverse em alto

Nesta combinação, o transistor PNP do lado esquerdo é acionado enquanto o NPNé acionado do lado direito, fazendo com que haja circulação de corrente no sentidoinverso do motor, fazendo com que ele gire no sentido reverso, o que pode ser vistona Figura 9.

3. Forward em nível lógico alto e Reverse em baixo

Esta combinação entrega o resultado contrário da anterior, acionando o transistorNPN do lado esquerdo e o PNP do lado direito, de forma que a corrente circule nosentido convencional do motor, o que pode ser visto na Figura 10

Page 31: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.4. Atuadores 29

Figura 9 – Percurso da corrente no circuito da ponte H na segunda combinação (01)

Fonte: Sistema Embutido (2016)

Figura 10 – Percurso da corrente no circuito da ponte H na segunda combinação (10)

Fonte: Sistema Embutido (2016)

4. Ambas entradas em nível lógico alto (11):

Esta última combinação entrega o mesmo resultado final da primeira, seu resultadopode ser visto na Figura 11. Os dois transistores NPN são acionados, entregando0V aos dois terminais do motor, fazendo com este não seja acionado, já que nãoexiste circulação de corrente.

2.4.2.1 Ponte H L298

O CI L298 possui duas pontes h completas em seu circuito, sendo possível o controlede dois motores de forma independente. Possui tensão limite de 46V e corrente limite de4A, sendo possível sua aplicação em robôs de grande escala. Outros fatores vantajosos são

Page 32: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

30 Capítulo 2. Fundamentação Teórica

Figura 11 – Percurso da corrente no circuito da ponte H na primeira combinação (11)

Fonte: Sistema Embutido (2016)

sua alta imunidade a ruídos (1,5V para nível lógico baixo), sua baixa tensão de saturaçãoe sua proteção contra superaquecimento. Um diagrama de seu circuito interno é mostradona Figura 12

Figura 12 – Diagrama do circuito interno do CI L298

Fonte: STMicroeletronics (2000)

2.4.3 PWM

O método de PWM (Pulse Width Modulation), resolve o problema de controle develocidade dos motores retirando a necessidade de circuitos analógicos e se baseando nofato de que os sistemas mecânicos possuem uma certa latência, ou seja, seu tempo deresposta não é exatamente igual ao tempo do estímulo (BRAUNL, 2006).

Page 33: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.4. Atuadores 31

Este método consiste em pulsar rapidamente um sinal digital e uma de suas aplicaçõesé simular uma tensão estática variável, desta forma, é possível controlar a tensão médiaentregue à um motor, de forma que não existam somente duas possibilidades de velocidade,desligado ou ligado com sua velocidade máxima. A Figura 13 demonstra o funcionamentoe sua analogia à uma saída analógica.

Figura 13 – Funcionamento da modulação por largura de pulso

Fonte: Ermicro (2009)

Existem três fatores fundamentais a serem analisados

• Frequência do sinal;

• Duty Cycle ou Ciclo Ativo;

• Amplitude máxima do sinal.

A principal exigência para a frequência da portadora é que seja alta o suficiente paraque a comutação entre o período em alta e o período em baixa não seja notável quando osinal é ligado ao dispositivo de saída (BRAUNL, 2006), geralmente se usa uma frequênciadez vezes maior que a frequência de oscilação do dispositivo.

O Duty Cycle é o que define a potência entregue à carga, e trata da relação entre otempo em alta e o período do sinal gerado.

DC = tonT

(2.5)

Page 34: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

32 Capítulo 2. Fundamentação Teórica

Desta forma, para alterar a tensão média entregue ao dispositivo controlado, bastaalterar o duty cycle do sinal PWM:

Vsaida = DC · Vmax (2.6)

Onde Vmax é a amplitude máxima do sinal, que é igual à alimentação do gerador dePWM.

2.5 Sensores

De acordo com Romano (2002), sensores são os componentes do sistema responsáveispor fornecer parâmetros sobre o comportamento do robô, geralmente em termos de posiçãoe velocidade das rodas em função do tempo, e do modo de interação entre o robô e oambiente operativo (detecção de obstáculos, por exemplo) à unidade de controle.

Braunl (2006) classifica os sensores de acordo com suas funções dentro do sistema,esta classificação pode ser vista na Tabela

Tabela 1 – Classificação dos sensores

Local Global

Interno Passivo

Encoders

-AcelerômetroGiroscópioInclinômetro

BússolaAtivo - -

Externo

Passivo Câmera de bordo GPS

AtivoSensor ultrassônico

Sistema de posicionamento globalSensor de distância infravermelhoScanner à laser

Fonte: Adaptado de Braunl (2006)

São denominados sensores internos os sensores que monitoram o estado interno dorobô e sensores externos os sensores que monitoram o ambiente. Sensores locais e globaissão, respectivamente, sensores que estão na plataforma robótica e fora dela transmitindodados para o robô.

Em um sistema robótico móvel alguns dados se fazem necessários para que este sejaconsiderado um sistema de navegação autônoma, como análise da existência de obstáculos,velocidade, angulação e posicionamento do robô.

Uma combinação de sensores é necessária para o aferimento destes dados, esta geral-mente é composta por: um sensor de ecolocalização, um sensor magnético (bússola) e umsensor de velocidade.

Page 35: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.5. Sensores 33

2.5.1 Sensor Ultrassônico HC-SR04

Segundo Ottoni e Lages (2003), a utilização de sensores ultrassônicos para detecçãode obstáculos tem se mostrado muito eficaz em robôs móveis para navegação indoor porterem alta confiabilidade para pequenas distâncias e serem de simples implementação secomparados a outros métodos de localização, como sensores infravermelhos ou câmeras.

O princípio de seu funcionamento é simples, o sensor é equipado com um transmissor eum receptor de ondas ultrassônicas, o transmissor emite uma onda, essa onda se espalhapelo ambiente e ao encontrar um empecilho esta é refletida, de forma que a distânciaentre o sensor e obstáculo seja proporcional ao intervalo de tempo entre a emissão daonda e a recepção da onda refletida (ElecFreaks, 2011), este fenômeno de reflexão podeser visualizado na Figura 14, onde a onda emitida está em vermelho e sua respectiva ondarefletida, em verde, a Figura 15 mostra o mesmo processo, mas em forma de diagramatemporal.

Figura 14 – Funcionamento de um sensor ultrassônico

Fonte: How to Mechatronics (2015)

Figura 15 – Diagrama temporal de uma medida de distância do módulo HC-SR04

Fonte: How to Mechatronics (2015)

O cálculo da distância é feito a partir da velocidade de ondas sonoras, já conhecida,

Page 36: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

34 Capítulo 2. Fundamentação Teórica

aproximadamente 340 m/s. Desta forma, como a onda percorre o dobro da distância nointervalo de tempo considerado, a distância entre o sonar e o obstáculo, em metros, édada por:

d = 340[m/s] · t[s]2 [m] (2.7)

O sensor ultrassônico utilizado neste trabalho foi o HC-SR04, mostrado na Figura 16,este possui 4 pinos, descritos na Tabela 2.

Figura 16 – Funcionamento de um sensor ultrassônico

Fonte: ElecFreaks (2011)

Tabela 2 – Pinos do módulo de sensor ultrassônico HC-SR04 e suas respectivas funções

Pino FunçãoVCC Alimentação do sensor (5V)Trig Pino TriggerEcho Pino EchoGND Terra da alimentaçãoFonte: Adaptado de ElecFreaks (2011)

2.5.2 Bússola Digital HMC5883l

Em sistemas de navegação indoor, onde geralmente sensores GPS são dispensados porseu mau funcionamento, a utilização de bússolas é muito empregada para determinar oposicionamento do robô.

O módulo HMC5883l (Figura 17), da Honeywell, é um módulo completamente inte-grado que combina sensores magnetoresistivos em 3 eixos com os circuitos de suporte ana-lógicos e digitais necessários para sua implementação computacional (Honeywell, 2013).

Page 37: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.5. Sensores 35

Figura 17 – Módulo HMC5883l

Fonte: Instructables (2015)

O controle deste dispositivo é feito via barramento I2C, onde é conectado como escravosob o controle de um mestre, neste caso, um microcontrolador. Seu endereço de 7-bits é0x1E, ou 0x3D para leitura e 0x3C para escrita.

2.5.3 Encoder Óptico

Para determinar a velocidade angular instantânea de um robô, destacam-se os métodosque utilizam encoders ópticos.

Nestes métodos, um disco contendo perfurações igualmente espaçadas é acoplado aoeixo do motor e um par emissor/receptor de infravermelho é posicionado de modo a ob-servar a variação entre as perfurações e as áreas não perfuradas do disco. Conforme oeixo do motor gira, a luz infravermelha emitida é bloqueada e não bloqueada sequencial-mente, gerando no receptor um sinal com frequência proporcional à velocidade do rotor(CARVALHO et al., 2010), a Figura 18 demonstra este processo.

O método para obtenção da velocidade angular do motor é bem simples e consistebasicamente em obter a frequência de rotação dividindo a frequência do sinal gerado peloencoder pelo número de perfurações (N) no disco acoplado ao eixo do motor:

fmotor = fencoderN

[Hz] (2.8)

Para converter essa frequência em unidades de velocidade angular mais comuns, como

Page 38: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

36 Capítulo 2. Fundamentação Teórica

Figura 18 – Funcionamento de um encoder óptico

Fonte: HI Tecnologia (2017)

rad/s ou rpm, as equações 2.9 e 2.10 podem ser utilizadas.

ω = 2 · π · fmotor [rad/s] (2.9)

RPM = fmotor · 60 [rpm] (2.10)

Para o cálculo da velocidade linear, basta saber o diâmetro de suas rodas:

V = π ·D ·RPM60 [m/s] (2.11)

ou

V = π ·D ·RPM · 601000 [km/h] (2.12)

Onde D é o diâmetro da roda em metros.

2.6 Microcontroladores

Por definição, um microcontrolador é um pequeno computador em um único circuitointegrado contendo um núcleo de processador, memória e periféricos programáveis deentrada e saída. A memória de programação utilizada é, geralmente, Flash por ser não-volátil e de fácil reprogramação.

Os microcontroladores foram desenvolvidos para aplicações em sistemas embarcados,em contraste com os microprocessadores utilizados em computadores pessoais ou outrasaplicações de uso geral (GRIDLING; WEISS, 2007).

Page 39: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.6. Microcontroladores 37

Alguns recursos dos microcontroladores são fundamentais para a conexão com perifé-ricos e/ou obtenção de dados externos:

• GPIO: São portas programáveis de entrada ou saída de dados. A habilidade demonitorar e controlar diretamente hardware, é a principal característica de um mi-crocontrolador, desta forma, todos os microcontroladores são equipados com GPIOs,que além de sua funcionalidade principal, podem possuir funções alternativas comoTimers, de forma a economizar pinos do microcontrolador.

• Interrupções: Os microcontroladores tendem a ser utilizados em sistemas que pre-cisam reagir a eventos. Para evitar tempo de processamento ao monitorar constan-temente o sinal de entrada esperando alguma mudança, são utilizadas interrupções,desta forma, ao ocorrer alguma mudança, o programa é interrompido e o microcon-trolador acessa uma rotina que lida com o evento. Caso o sistema tenha mais deum evento monitorado, é possível determinar prioridades para as interrupções, deforma que os eventos mais importantes possuam prioridade mais alta e o µC lidecom ele antes caso duas interrupções ocorram ao mesmo tempo.

• Timers: Timers ou temporizadores possuem várias aplicações que vão desde simplesdelays entre medidas até geração de sinais. O uso mais básico do timer está em suafunção como um contador, mas os timers geralmente também permitem o usuáriodisparar interrupções após um certo número de ciclos de relógio e até gerar sinaismodulados em largura de pulso (PWM) para o controle do motores.

2.6.1 Protocolo de Comunicação I2C

Se tratando de protocolos de comunicação de microcontroladores, se destaca o I2Cpara aplicações em robótica móvel, pois existe uma grande gama de sensores e periféricosque utilizam este protocolo (memórias EEPROM, sensores de temperatura, visores LCD,acelerômetros, etc), inclusive o magnetômetro HMC5883l utilizado neste trabalho.

De acordo com Gridling e Weiss (2007), I2C é um barramento serial síncrono utilizadopara conectar periféricos de baixa velocidade ao microcontrolador, que opera em umprincípio mestre-escravo, utiliza duas linhas bidirecionais de dreno aberto, SDA (SerialData Line) e SCL (Serial Clock Line) estabelecendo uma conexão half-duplex, ou seja,tanto mestre quando escravo podem enviar e receber dados, mas nunca ao mesmo tempo.

Uma das grandes vantagens do barramento I2C é sua fácil ampliação, novos periféricospodem ser adicionados na mesma linha sem problema algum (Figura 19).

Cada dispositivo escravo tem seu endereço de 7-bits que é utilizado pelo mestre nacomunicação, sendo acrescentado um 0 no LSB para escrita e 1 para leitura, criando entãoum endereço de 8-bits para cada propósito.

Page 40: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

38 Capítulo 2. Fundamentação Teórica

Figura 19 – Configuração de um barramento I2C

Fonte: Gridling e Weiss (2007)

2.6.2 Arquitetura dos microcontroladores

A performance de um microcontrolador depende da sua arquitetura interna, ou seja,do modo em que o microcontrolador foi projetado tanto para o hardware como parasoftware.

Existem dois tipos de arquitetura para um microcontrolador, que podem ser utilizadaspara diferentes aplicações, dependendo da necessidade do usuário (GRIDLING; WEISS,2007):

• RISC (Reduced Instruction Set Computer): a arquitetura RISC possui instruçõessimples e rígidas que muitas vezes levam apenas um ou poucos ciclos de clock paraexecutar. As máquinas RISC apresentam um tamanho de código pequeno e fixo compoucas instruções e poucos modos de endereçamento. Como resultado, a execuçãodas instruções é muito rápida, mas o conjunto de instruções é bastante simples.

• CISC (Complex Instruction Set Computer): a arquitetura CISC é caracterizada porsuas complexas instruções microcodificadas que levam muitos ciclos de clock paraexecutar. A arquitetura geralmente possui um tamanho de código grande e variávele oferece muitas possíveis instruções e modos de endereçamento. Em comparaçãocom o RISC, o CISC leva mais tempo para executar suas instruções, mas o conjuntode instruções é mais poderoso.

2.6.3 Microcontroladores da Linha STM32F100XX

Os microcontroladores da linha STM32F100XX desenvolvidos pela STMicroeletronics,incorporam o núcleo de arquitetura RISC ARM-Cortex M3 de 32 bits operando à 24MHz,memórias embutidas de alta velocidade (memória flash até 128 Kbytes e SRAM até 8 Kby-tes) e uma ampla gama de periféricos e pinos de entrada e saída aprimorados conectados adois barramentos APB. Todos os dispositivos oferecem interfaces de comunicação padrão(até dois I2Cs, dois SPIs, um HDMI CEC e três USARTs), um ADC de 12 bits, dois

Page 41: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

2.6. Microcontroladores 39

DACs de 12 bits e até seis timers para uso geral (STMicroeletronics, 2016). Na Figura 20é possível visualizar o esquemático destes microcontroladores:

Figura 20 – Diagrama do circuito de um microcontrolador da linha STM32F100XX

Fonte: STMicroeletronics (2016)

Page 42: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 43: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

41

3 Desenvolvimento

3.1 Descrição do Protótipo

O protótipo utilizado para o desenvolvimento deste projeto conta com duas rodastracionadas com motores independentes e uma roda livre do tipo castor (Figura 21),seguindo o modelo de tração diferencial visto no Capítulo 2.

Figura 21 – Plataforma utilizada no protótipo vista de baixo

Fonte: a própria autora

As rodas de tração, de diâmetro 6, 5±0, 05 cm, estão posicionadas com uma distânciade 14, 3 ± 0, 05 cm entre seus pontos centrais e a roda castor, de diâmetro 3, 0 ± 0, 05 cm,tem seu ponto central posicionado à 8, 5±0, 05 cm do eixo de rotação das rodas de tração,desconsiderando o desvio de 1, 3 ± 0, 05 cm entre o eixo vertical e o eixo horizontal daroda (visto na Figura 22).

3.1.1 Modelagem Cinemática do Protótipo

O modelo cinemático do protótipo é definido pela equação 2.4. Substituindo os valoresde diâmetro das rodas e distância entre elas, temos o modelo em função de suas velocidadeangulares:

x

y

θ

=

cos θ − sin θ 0sin θ cos θ 0

0 0 1

3, 25(φ1 + φ2)0

0, 4545(φ1 − φ2)

(3.1)

Page 44: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

42 Capítulo 3. Desenvolvimento

Figura 22 – Roda do tipo castor utilizada no protótipo

Fonte: a própria autora

Resolvendo o sistema para as velocidades instantâneas no referencial global, temos:

x = 3, 25 · cos θ(φ1 + φ2)

y = 3, 25 · sin θ(φ1 + φ2)

θ = 0, 4545(φ1 − φ2)

(3.2)

Através desse equacionamento é possível perceber que quando a rota do robô é per-pendicular ao eixo em questão (θ = π

2 ou 3π2 para o eixo x e θ = 0 ou π) sua velocidade

instantânea naquela direção é nula, o que caracteriza um robô sem capacidade de movi-mentação lateral.

É possível notar também, a capacidade de rotação do robô proporcional à diferençaentre as velocidades angulares de suas rodas, característica principal dos veículos comtração diferencial.

3.1.2 Arquitetura de Controle

O protótipo robótico de estudo foi desenvolvido com o objetivo de compreensão dosmétodos e processos utilizados para o desenvolvimento de um robô autônomo.

Devido ao uso de equipamentos de baixo custo e também por facilidade na imple-mentação, a princípio o sistema de navegação foi desenvolvido baseado na arquitetura decontrole reativo. No qual o robô móvel tem possibilidade de reação a estímulos geradospelo ambiente e readaptação a estes, mas não possui a habilidade de guardar informaçõesa respeito do ambiente ou de gerar rotas.

Este sistema robótico possui a capacidade de detectar obstáculos e seguir outra rotaaleatória, assim como de detectar mudanças em sua trajetória e corrigi-la.

Page 45: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

3.2. Hardware 43

3.2 Hardware

O hardware da plataforma robótica pode ser dividido em quatro partes principais:sensores, atuadores, alimentação e microcontrolador.

3.2.1 Sensores

Os sensores utilizados no protótipo foram três: sonar para detecção de obstáculos,bússola digital e encoder óptico para estimação da velocidade do robô.

3.2.1.1 Sensor Ultrassônico

O sensor ultrassônico HC-SR04 foi posicionado na centro da parte dianteira do robôde forma a aumentar sua eficácia na detecção de obstáculos. A Figura 23 mostra seuposicionamento na plataforma.

Figura 23 – Posicionamento do sensor ultrassônico no protótipo

Fonte: a própria autora

3.2.1.2 Bússola Digital

O módulo de bússola digital HMC5883l foi fixado na parte traseira do robô, comomostra a Figura 26. É de extrema importância que este módulo esteja bem fixo naplataforma, pois qualquer alteração em seus dados pode causar um grande desvio na rotado robô.

Page 46: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

44 Capítulo 3. Desenvolvimento

3.2.1.3 Encoder Óptico

Para avaliação da velocidade de navegação do robô, foi utilizado o método descrito noCapítulo 2 que utiliza encoders ópticos.

O módulo de encoder óptico utilizado neste trabalho está ilustrado na Figura 24. Estemódulo combina o sensor óptico que possui resposta analógica com um CI comparadorLM393 de forma que sua resposta é digital, facilitando a interface com o microcontrolador.A Figura 25 mostra o posicionamento do encoder combinado ao disco com 20 ranhurasfixo ao eixo do motor.

Figura 24 – Módulo de encoder óptico digital utilizado no protótipo

Fonte: Arduino e Cia (2016)

Figura 25 – Posição do encoder óptico para leitura de velocidade

Fonte: a própria autora

3.2.2 Atuadores

A plataforma conta com um conjunto composto por motores DC, rodas de traçãoindependentes e módulo de ponte H para acionamento dos motores funcionando como oatuador do sistema robótico. A Figura 26 mostra o posicionamento do módulo de ponteH no protótipo.

Page 47: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

3.2. Hardware 45

Figura 26 – Sensores posicionados na traseira do protótipo

Fonte: a própria autora

3.2.3 Módulo Bluetooth HC-05

Para a realização de testes do sistema através da coleta de dados importantes, foiutilizado o módulo bluetooth HC-05 (Figura 27), permitindo comunicação serial entreo protótipo e um dispositivo móvel até aproximadamente 10 metros de distância (iTeadStudio, 2016).

Figura 27 – Módulo bluetooth acoplado à traseira do protótipo

Fonte: a própria autora

3.2.4 Alimentação

A alimentação do protótipo ficou por conta de uma única bateria de chumbo ácidode 6 V/1,3 A (Figura 28). Esta bateria alimenta o módulo de ponte H, que por sua vezalimenta o microcontrolador e os sensores através de um regulador de tensão de 5V.

Page 48: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

46 Capítulo 3. Desenvolvimento

Figura 28 – Bateria de chumbo ácido utilizada para alimentação do sistema

Fonte: a própria autora

3.2.5 Microcontrolador

O kit de desenvolvimento STM32VLDiscovery que conta com o microcontroladorSTM32F100RB foi utilizado na realização deste trabalho. Este foi fixado na parte di-anteira do robô, de forma que fosse de fácil acesso por todos os sensores e atuadoresutilizados. O kit pode ser visto na Figura 29.

Figura 29 – Kit de desenvolvimento fixo na parte dianteira da plataforma robótica

Fonte: a própria autora

Page 49: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

3.3. Software 47

3.3 Software

O software do robô é a parte central do trabalho, sendo responsável por captar, tratare processar os dados recebidos dos sensores, assim como enviar comandos aos atuadores.

A programação do software foi realizada, integralmente em linguagem C, utilizando aIDE CoIDE, que é um ambiente de desenvolvimento focado em microcontroladores comnúcleo ARM Cortex. O processo de gravação do código no kit de desenvolvimento é bemsimples, via USB, sem a necessidade de programadores externos.

O desenvolvimento do código que entrega ao robô capacidade de navegar de formareativa, foi realizada, se basendo nos passos demonstrados no diagrama da Figura 30.

Figura 30 – Diagrama básico das tarefas realizadas pelo robô através do software desen-volvido

Fonte: a própria autora

Para controle do sentido e velocidade dos motores, foi utilizado o módulo de ponteH combinado à geração de sinais PWM através do microcontrolador. Os sinais PWMforam gerados pelos timers do controlador, numa frequência de 24kHz para garantir que osinal estivesse fora da faixa de frequência audível (entre 20 e 20kHz). As funções criadaspara configurar o TIM3 do microcontrolador para aplicação em PWM e acionamento dosmotores são mostradas no Apêndice A.1.

Os outros três principais blocos do sistema (desvio de obstáculos, medição da velo-cidade e correção de trajetória) foram tratados separadamente, pois cada um se baseiaem um dos três sensores listados anteriormente, e estão explicados detalhadamente noCapítulo seguinte.

Page 50: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 51: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

49

4 Resultados

Como visto no Capítulo 2, em um sistema de navegação autônoma baseado em com-portamento, os algoritmos são desenvolvidos individualmente para cada tarefa do sistemae em conjunto formam um sistema robótico de navegação autônoma.

Como resultado dos estudos e desenvolvimento apresentados nos capítulos anteriores,foram desenvolvidos, primeiramente, algoritmos responsáveis por realizar três subtarefasprincipais do sistema: desvio de obstáculos, controle de trajetória e medição da velocidade.

4.1 Desvio de Obstáculos

O algoritmo para detecção de obstáculos foi desenvolvido se baseando apenas nosdados obtidos através do sensor ultrassônico HC-SR04. Como visto na Subseção 2.5.1,o sensor ultrassônico inicia seu funcionamento ao receber um pulso de 10µs em seu pinoTrigger, e então, a distância entre o sensor e o obstáculo é proporcional ao tempo daresposta obtida no pino Echo. Transformando isso em código, foi desenvolvida a funçãoabaixo, que retorna a distância em centímetros até o obstáculo, de acordo com o datasheetdo sensor (ElecFreaks, 2011).

1 long distancia_cm ( ) {2 uint32_t timing , d i s t ;3

4 // Garante que o Tr igger e s t e j a zerado antes do pulso i n i c i a l5 GPIO_ResetBits (GPIOA, TrigPin ) ;6 TIM_SetCounter (TIM1, 0) ;7 // Coloca o Tr igger em 5V8 GPIO_SetBits (GPIOA, TrigPin ) ;9 //Aguarda 10 us

10 whi le (TIM_GetCounter (TIM1) <10) ;11 // Des l i ga o Tr igger12 GPIO_ResetBits (GPIOA, TrigPin ) ;13

14 //Aguarda r e spo s ta no pino Echo15 whi le ( ! GPIO_ReadInputDataBit (GPIOA, EchoPin ) ) ;16 // Zera o Timer17 TIM_SetCounter (TIM1, 0) ;18 //Aguarda o fim da r e spo s ta obt ida19 whi le ( GPIO_ReadInputDataBit (GPIOA, EchoPin ) ) ;20 // Salva a tempo de duracao da r e spo s ta21 t iming = TIM_GetCounter (TIM1) ;22

23 // Converte para cm, de acordo com o datasheet .

Page 52: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

50 Capítulo 4. Resultados

24 d i s t = timing /58 ;25

26 re turn d i s t ;27 }

Para completo entendimento do código, é importante saber que o Timer TIM1 domicrocontrolador, foi previamente configurado para uma frequência de 1MHz, ou seja,cada contagem equivale a 1µs.

Para a detecção de obstáculos, foi utilizado como base o fluxograma mostrado naFigura 31.

Figura 31 – Fluxograma inicial para desvio de obstáculos

Fonte: a própria autora

Para facilitar a implementação em código, foi utilizado o método de máquina de esta-dos, com três estados: Navegando, Ré e Curva, para isto, foi necessário o trecho de códigoabaixo:

1 typede f enum{2 Navegando = 0 ,3 Re ,4 Curva5 } RobotState ;

Page 53: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

4.2. Controle de Trajetória 51

Finalmente, então, foi desenvolvido o código para desvio de obstáculos, dentro do loopinfinito:

1 whi le (1 )2 {3 d i s t =distancia_cm ( ) ;4

5 switch ( Estado ) {6 case Navegando :7 // Detecta obs tacu l o s8 i f ( d i s t <10) {9 Ligar_Motor_Direito (−60) ; //Re

10 Ligar_Motor_Esquerdo(−60) ;11 Estado=Re ;12 }13 break ;14

15 case Re :16 // V e r i f i c a a d i s t a n c i a segura para v i r a r17 i f ( d i s t > 20) {18 // Gira no s en t ido hora r i o19 Ligar_Motor_Direito (−60) ;20 Ligar_Motor_Esquerdo (60) ;21 Estado = Curva ;22 }23 break ;24

25 case Curva :26 // encontra d i s t a n c i a minima para s e g u i r r e to27 i f ( d i s t > 100) {28 // Segue em f r e n t e29 Ligar_Motor_Direito (60) ;30 Ligar_Motor_Esquerdo (60) ;31 Estado = Navegando ;32 }33 break ;34 }

É importante saber que nas inicializações do sistema (antes do loop infinito), o robôé colocado no estado Navegando, com os dois motores ligados com a mesma velocidadepara frente.

4.2 Controle de Trajetória

O algoritmo para controle de trajetória foi desenvolvido com base nos dado obtidosatravés da bússola digital HMC5883l. O fluxograma inicial é mostrado na Figura 32.

Page 54: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

52 Capítulo 4. Resultados

Figura 32 – Fluxograma inicial para controle de trajetória

Fonte: a própria autora

A ideia geral é de comparar o ângulo atual do robô ao seu ângulo inicial evitandodesvios não planejados da rota principal. O controle de trajetória só precisa ser realizadoquando o robô está seguindo em linha reta para frente (estado Navegando), considerandoque a ré é dada por um curto período de tempo e não existe motivo para controle daangulação do robô durante a curva.

Considerando que a bússola foi configurada com uma resolução de 1 grau, o código foidesenvolvido de forma que o robô só acione a rotina de correção de trajetória quando adiferença de angulação for de no mínimo ±5 graus, prevendo erros nos valores retornadospela bússola. Este teste pode ser visto no trecho de código abaixo:

1 case Navegando :2 ( . . . )3

4 ang_atual = Le i turaBusso la ( ) ;5

6 i f ( ang_atual >(ang+1) ) {7 vel_esquerda = vel_esquerda +2;8 Ligar_Motor_Esquerda ( vel_esquerda ) ;9 }

10 e l s e i f ( ang_atual <(ang−1){11 vel_esquerda = vel_esquerda −2;12 Ligar_Motor_Esquerdo ( vel_esquerda ) ;13 e l s e {14 vel_esquerda =60;15 Ligar_Motor_Esquerdo ( vel_esquerda ) ;16 }17

18 }19 break ;

Page 55: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

4.2. Controle de Trajetória 53

O ângulo inicial é aferido antes do loop infinito e toda vez que o robô finaliza o desviode um obstáculo.

4.2.1 Teste da Eficácia da Rotina de Controle de Trajetória

Para teste da eficácia do algoritmo desenvolvido para controle de trajetória, o robô foicolocado em um ambiente sem obstáculos para que se mantivesse em estado Navegandopor pelo menos 2 metros.

A coleta dos ângulos inicial e instantâneo do robô foi realizada através de comunicaçãovia bluetooth, com o módulo HC-05 combinado ao aplicativo de monitoramento bluetoothpara celular Bluetooth spp tools pro, disponível gratuitamente. As linhas de códigoprogramadas no microcontrolador para esta comunicação podem ser vistas no ApêndiceA.5.

Figura 33 – Coleta de dados realizada através do aplicativo citado em diferentes momentos

Fonte: a própria autora

Page 56: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

54 Capítulo 4. Resultados

A fim de comparar a variação da angulação do robô em relação ao norte magnético,foram realizados dois testes. A princípio, o robô foi submetido ao ambiente previamentecitado, com um ângulo inicial de -18 graus, sem a rotina de correção de trajetória, e foramcoletados seus dados de angulação a cada 100 milissegundos durante aproximadamente 15segundos, e em um segundo teste, os mesmos procedimentos foram realizados, mas coma rotina de correção de trajetória ativada. Os resultados destes ensaios podem ser vistosno gráfico mostrado na Figura 34.

Figura 34 – Comparação dos ângulos instantâneos do robô com e sem a rotina de controlede trajetória

Fonte: a própria autora

Através do gráfico é possível notar, primeiramente, a importância de deixar um inter-valo de guarda de ±1 grau antes que o sistema acione a rotina para controle de trajetória,já que existem algumas oscilações na leitura da bússola. E mais importante, é possívelnotar a diferença que a rotina faz, já que o ângulo do robô se mantém sempre próximoà -18 graus com a rotina e sem a rotina este varia continuamente, se afastando cada vezmais do ângulo inicial.

4.3 Medição de Velocidade

.A obtenção das velocidades angular e linear das rodas do robô é de extrema impor-

tância na determinação de sua modelagem assim como na determinação de seu posicio-namento.

Neste trabalho, considerando o fato de robô possuir duas rodas iguais acopladas adois motores com as mesmas características e mesmo fabricante, somado ao fato de que

Page 57: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

4.3. Medição de Velocidade 55

uma das rodas (esquerda) foi utilizada para correção de rota, de forma sua velocidadeoscila consideravelmente no tempo, a velocidade do robô foi tomada considerando apenasa velocidade da roda direita.

O sensor utilizado para aferimento da velocidade de rotação do motor foi o encoderóptico descrito no Capítulo 3 deste trabalho. O método utilizado para determinar afrequência do trem de pulsos gerado pelo encoder foi de combinar dois tipos de inter-rupções, EXTI para contar os pulsos na entrada e do Timer a cada um segundo paradeterminar a taxa de pulsos por segundo, de forma que foi possível aplicar a equação2.10 para calcular a velocidade angular, em rpm, do eixo do motor e a equação 2.12 paracalcular a velocidade linear do robô.

Abaixo é possível verificar os Handlers de cada uma das interrupções:

1 void EXTI4_IRQHandler ( ) { // oco r r e a cada pulso do encoder2

3 pu l so s++; // Contador de pu l so s4

5 EXTI_ClearITPendingBit (EXTI_Line4 ) ;6 }

Este trecho de código acrescenta o contador de pulsos a cada pulso gerado pelo encoder.

1 void TIM2_IRQHandler ( ) {// oco r r e a cada 1 segundo2

3 // Encontra o numero de v o l t a s dadas4 v o l t a s [ i ] = ( f l o a t ) pu l so s /20 ;5 // zera o contador de pu l so s6 pu l so s = 0 ;7 i ++;8

9 i f ( i ==5){10

11 //Faz uma media ent re as u l t imas 5 medidas de numero de v o l t a s12 v_angular = ( v o l t a s [0 ]+ v o l t a s [1 ]+ v o l t a s [2 ]+ v o l t a s [3 ]+ v o l t a s [ 4 ] ) /5 ;13

14 // ve l o c idade angular em rpm15 v_angular = v_angular ∗60 ;16

17 // ve l o c idade l i n e a r em m/h18 v_l inear = (3 . 1415∗6 . 5∗ v_angular ∗60) /100 ;19 i =0;20 }21 TIM_ClearITPendingBit (TIM2, TIM_IT_CC2) ;22 }

A velocidade linear do robô foi calculada em [m/h] para aumentar sua precisão.

Page 58: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

56 Capítulo 4. Resultados

Através deste código, foi possível obter algumas informações sobre a velocidade dorobô, como sua velocidade linear máxima obtida com o hardware escolhido e informaçõessobre o motor DC utilizado no protótipo. Essas informações estão dispostas na Tabela 3.

Tabela 3 – Velocidades máximas com e sem a carga do protótipo

Velocidade de rotação máxima do motor DC Com carga 96 rpmSem carga 117 rpm

Velocidade linear máxima do robô Com carga 1,9 km/hSem carga 2,4 km/h

4.4 Protótipo Completo

Ao combinar os três algoritmos principais desenvolvidos, foi possível obter um sistemade navegação autônoma baseado em controle reativo completamente funcional.

Ao final do trabalho, o protótipo foi capaz de detectar obstáculos, desviar destes eencontrar outra rota segura para seguir, aleatoriamente. O algoritmo para correção detrajetória permite que o robô se mantenha em sua rota, ao remediar pequenos desvios quepodem ser causados por obstáculos menores (pedras, por exemplo) que não são detectadospelo sensor ultrassônico, ou por outros fatores.

A rotina para obtenção da velocidade linear teve função somente de apoio neste tra-balho, mas esta pode ser de extrema importância em trabalhos futuros com o protótipo.

Page 59: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

57

5 Discussões e Conclusões

Com a realização deste trabalho, foi possível perceber a importância de estudar e de-senvolver um robô móvel de forma gradual, separando o projeto principal em módulosmenores e os juntando ao final. Essa separação promove maior facilidade de desenvolvi-mento, além de maior nível de aprendizado sobre cada módulo.

De forma mais específica, notou-se a grande vantagem em se trabalhar com o conjuntoPWM e Ponte H no controle de motores, evitando controles analógicos ou existência deapenas uma velocidade funcional para o protótipo.

Uma das principais motivações deste trabalho foi criar um protótipo de navegaçãoautônoma de custo relativamente baixo para fins de estudo, o que foi conquistado comum conjunto de sensores simples, mas que combinados foram capazes de compor um robôfuncional.

Por fim, o protótipo desenvolvido é capaz de detectar obstáculos, se manter em umarota linear, como comprovado com os testes realizados, e possui um medidor de velocidadefuncionando em tempo real, podendo ser utilizado em diversas aplicações, além de ummódulo bluetooth integrado que pode ser utilizado para captar dados do sistema em temporeal, que neste trabalho foi utilizado somente para testes mas possui inúmeras aplicações.

5.1 Trabalhos Futuros

O protótipo apresentado neste trabalho pode progredir facilmente com a adição demais sensores ou desenvolvimento de plataformas externas à ele. Para trabalhos futuros,sugere-se a utilização das rotinas desenvolvidas neste trabalho para o desenvolvimento deum sistema baseado em uma arquitetura de controle híbrida, ou seja, adicionar traçosde controle deliberativo ao sistema. Isto pode ser realizado utilizando o medidor develocidade para desenvolver um hodômetro digital e mapear o ambiente ao combiná-locom os outros sistemas já implementados, por exemplo.

Page 60: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,
Page 61: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

59

Referências

Arduino e Cia. https://www.arduinoecia.com.br/2016/02/sensor-de-velocidade-lm393-arduino.html. 2016. Acesso em: 27 de dezembro de 2017. Disponível em:<https://www.arduinoecia.com.br/2016/02/sensor-de-velocidade-lm393-arduino.html>.44

BRAUNL, T. Embedded Robotics: Mobile Robot Design and Applications with EmbeddedSystems. [S.l.]: Springer, 2006. 21, 22, 27, 30, 31, 32

CARVALHO, E. A. N. et al. Medição de velocidade angular com alta resolução usandoencoders de baixa resolução e pll. Revista Controle & Automação Vol.21 no.6, 2010. 35

ElecFreaks. HC-SR04 Cuser Guide. 2011. Acesso em: 10 de dezembro de 2017. Disponívelem: <http://elecfreaks.com/estore/download/EF03085-HC-SR04_Ultrasonic_Module_User_Guide.pdf>. 33, 34, 49

Ermicro. H-Bridge Microchip PIC Microcontroller PWM Motor Controller. 2009. Acessoem: 12 de dezembro de 2017. Disponível em: <http://www.ermicro.com/blog/?p=706>.31

GRIDLING, G.; WEISS, B. Introduction to Microcontrollers. [S.l.]: Vienna University ofTechnology, 2007. 36, 37, 38

HI Tecnologia. O que é Encoder? Para que serve? Como escolher? Como interfacear?2017. Acesso em: 12 de dezembro de 2017. Disponível em: <https://www.hitecnologia.com.br/blog/o-que-%C3%A9-encoder-para-que-serve-como-escolher-como-interfacear/>. 36

Honda. Asimo. 2011. Acesso em: 04 de janeiro de 2018. Disponível em: <http://asimo.honda.com/asimo-specs/>. 22

Honeywell. 3-Axis Digital Compass IC HMC5883L Datasheet. 2013. Acesso em: 11de dezembro de 2017. Disponível em: <https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf>. 34

How to Mechatronics. Ultrasonic Sensor HC-SR04 and Arduino Tutorial. 2015. Acessoem: 10 de dezembro de 2017. Disponível em: <http://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/>. 33

Instructables. Babuino Digital Magnetic Compass (HMC5883L - 2 Display Modes). 2015.Acesso em: 11 de dezembro de 2017. Disponível em: <http://www.instructables.com/id/Arduino-Digital-Magnetic-Compass-HMC5883L-2-displa/>. 35

iRobot. Roomba. 2016. Acesso em: 04 de janeiro de 2018. Disponível em: <http://www.irobot.com/For-the-Home/Vacuuming/Roomba.aspx>. 21

iTead Studio. HC-05-Bluetooth to Serial Port Module. 2016. Acesso em: 02 de fevereirode 2017. Disponível em: <http://www.electronicaestudio.com/docs/istd016A.pdf>. 45

Page 62: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

60 Referências

LAURA, T. L. Modelagem dinâmica da estrutura da base móvel de robôs manipuladorescom inclusão das não linearidades de entrada. Tese (Mestrado) - Universidade Federalda Bahia, Escola Politécnica, Programa de Pós-Graduação em Engenharia Elétrica,Salvador, BA, 2006. 23

MELO, L. F. de. Proposta de simulador virtual para sistema de navegação de robôsmóveis utilizando conceitos de prototipagem rápida. Tese (Doutorado) - UniversidadeEstadual de Campinas, Faculdade de Engenharia Mecânica, Campinas, SP, 2007. 22, 23,24

OTTONI, G. de L.; LAGES, W. F. Navegação de robôs móveis em ambientesdesconhecidos utilizando sonares de ultra-som. Sba Controle e Automação vol.14 no.4Campinas, 2003. 33

ROMANO, V. F. Robótica Industrial: Aplicação na Indústria de Manufratura e deProcessos. [S.l.]: Blucher, 2002. 26, 32

SECCHI, H. A. Uma Introdução aos Robôs Móveis. [S.l.]: IFES – Instituto Federal deEducação, Ciência e Tecnologia do Espírito Santo, 2012. 19, 25

SERAJI, H.; HOWARD, A. Behavior-based robot navigation on challenging terrain: Afuzzy logic approach. IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION,VOL. 18, NO. 3, 2002. 26

Sistema Embutido. O que é a Ponte H? 2016. Acesso em: 20 de dezembro de 2017.Disponível em: <http://sistemaembutido.com.br/article.php?id=124>. 28, 29, 30

STMicroeletronics. L298: Dual Full Bridge Driver. 2000. Acesso em: 15 de dezembrode 2017. Disponível em: <https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf>. 30

STMicroeletronics. Low & medium-density value line, advanced ARM R©-based32-bit MCU with 16 to 128 KB Flash, 12 timers, ADC, DAC & 8 comminterfaces. 2016. Acesso em: 10 de dezembro de 2017. Disponível em: <http://www.st.com/en/microcontrollers/stm32f100rb.html>. 39

WOLF, D. F. et al. Robótica móvel inteligente: Da simulação às aplicações no mundoreal. XXIX Congresso da Sociedade Brasileira de Computação, 2009. 19, 21

Page 63: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

61

A Apêndices

A.1 Funções para Acionamento dos Motores

As funções criadas para acionamento do motor direito estão listadas abaixo. Paraacionamento do motor esquerdo, o mesmo processo é repetido, mas com os canais 3 e 4do TIM3.

1 void Motor_Direito_Conf ( void ) {2

3 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE) ;4 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE) ;5

6 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ;7 // Divide a f r e q u e n c i a de c l o ck do microcontro lador (24MHZ) por 10008 TIM_TimeBaseStructure . TIM_Period = 100−1;9 TIM_TimeBaseStructure . TIM_Prescaler = 10−1;

10 TIM_TimeBaseStructure . TIM_ClockDivision = 0 ;11 TIM_TimeBaseStructure . TIM_CounterMode = TIM_CounterMode_Up ;12 TIM_TimeBaseInit (TIM3, &TIM_TimeBaseStructure ) ;13 }14

15 void Ligar_Motor_Direito ( i n t speed ) {16

17 i n t speedForward = 0 ;18 i n t speedBackward = 0 ;19

20 i f ( speed < 0) {21 speedBackward = ( abs ( speed ) ) ;22 } e l s e i f ( speed > 0) {23 speedForward = speed ;24 }25

26 TIM_OCInitTypeDef TIM_Struct ;27

28 // Conf igura e i n c i a TIM3OC129 TIM_Struct .TIM_OCMode = TIM_OCMode_PWM1;30 TIM_Struct . TIM_OutputState = TIM_OutputState_Enable ;31 TIM_Struct . TIM_Pulse = speedBackward ;32 TIM_Struct . TIM_OCPolarity = TIM_OCPolarity_High ;33 TIM_OC1Init (TIM3, &TIM_Struct ) ;34

35 // Reconf igura o Pulse da Struct e i n i c i a TIM3OC236 TIM_Struct . TIM_Pulse = speedForward ;

Page 64: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

62 Apêndice A. Apêndices

37 TIM_OC2Init (TIM3, &TIM_Struct ) ;38

39 TIM_Cmd(TIM3, ENABLE) ;40 }

A.2 Configuração dos Timers TIM1 e TIM2

O Timer TIM1 foi utilizado, em sua forma de contador, para temporização da res-posta recebida no sensor ultrassônico, portanto, seu contador foi configurado para umafrequência de 1MHz, ou seja, é incrementado a cada 1µs.

1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE) ;2

3 // Calcula o p r e s c a l e r para f r e q u e n c i a de 1MHz4 Presca l e rVa lue = ( uint32_t ) ( SystemCoreClock /1000000) −1;5 TIM_TimeBaseInitTypeDef TimerBaseInit ;6

7 TimerBaseInit . TIM_Prescaler= Presca l e rVa lue ;8 // Determina o numero maximo de contagens9 TimerBaseInit . TIM_Period=65535−1;

10 TimerBaseInit . TIM_CounterMode=TIM_CounterMode_Up ;11 TimerBaseInit . TIM_ClockDivision=0;12 TIM_TimeBaseInit (TIM1,& TimerBaseInit ) ;13

14 // I n i c i a o Timer15 TIM_OCInitTypeDef TimestruturaOC ;16 TIM_OC1Init (TIM1, &TimestruturaOC ) ;17 TIM_Cmd(TIM1,ENABLE) ;

O TIM2 foi configurado para interrupção a cada 1s e utilizado para determinaçãoda velocidade atual, verificando o número de pulsos recebidos no encoder neste período.Como a interrupção ocorre ao final das contagens do contador, diferente do caso anterior,a frequência do sistema é divida pela multiplicação entre o período e o prescaler definidos:

fIT−TIM = fsistPrescaler · Period

(A.1)

Desta forma, o trecho de código que realiza estas configurações está descrito abaixo:

1 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE) ;2

3 TimerBaseInit . TIM_Prescaler= 60000 −1;4 TimerBaseInit . TIM_Period=400−1;5 TimerBaseInit . TIM_CounterMode=TIM_CounterMode_Up ;6 TimerBaseInit . TIM_ClockDivision=0;7

8 TIM_TimeBaseInit (TIM2,& TimerBaseInit ) ;

Page 65: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

A.3. Configuração da EXTI 63

9

10 TimestruturaOC .TIM_OCMode= TIM_OCMode_Timing ;11 TimestruturaOC . TIM_OutputState=TIM_OutputState_Disable ;12 TimestruturaOC . TIM_Pulse=500 ;13 TimestruturaOC . TIM_OCPolarity= TIM_OCPolarity_High ;14

15 TIM_OC2Init (TIM2, &TimestruturaOC ) ;16

17 TIM_ITConfig (TIM2, TIM_IT_CC2, ENABLE) ;18

19 TIM_Cmd(TIM2,ENABLE) ;

É importante saber que o clock do sistema tem frequência de 24MHz, portanto estecódigo resulta em uma frequência de interrupção no TIM2 de 1Hz, ou seja, a cada 1segundo.

A.3 Configuração da EXTI

O trecho de código abaixo configura o pino 4 da GPIOC do microcontrolador paraoperar como um pino de interrupção externa, gerando uma interrupção no sistema a cadapulso recebido:

1 EXTI_InitTypeDef EXTI_Conf ;2

3 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE) ;4

5 GPIO_EXTILineConfig (GPIO_PortSourceGPIOC , GPIO_PinSource4 ) ;6

7 EXTI_Conf . EXTI_Line = EXTI_Line4 ;8 EXTI_COnf . EXTI_LineCmd = ENABLE;9 EXTI_Conf .EXTI_Mode = EXTI_Mode_Interrupt ;

10 // Conf igura para interromper quando de t e c ta r um borda de subida11 EXTI_Conf . EXTI_Trigger = EXTI_Trigger_Rising ;12

13 EXTI_Init(&EXTI_Conf) ;

A.4 Configuração da NVIC

Ao se trabalhar com dois tipos diferentes de interrupção no sistema, é necessário definirqual tem maior prioridade de execução. No caso deste trabalho, a interrupção do TIM2tem maior prioridade por ser baseada em tempo e não poder lidar com delays, destaforma, as configurações realizadas na NVIC estão descritas abaixo:

1 NVIC_InitTypeDef NVIC_Conf ;2

Page 66: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

64 Apêndice A. Apêndices

3 NVIC_PriorityGroupConfig ( NVIC_PriorityGroup_0 ) ; // 4 b i t s para sub−p r i o r i d a d e 0 b i t s para p r i o r i d a d e

4 // Ativa a EXTI0_IRQn5 NVIC_Conf . NVIC_IRQChannel = EXTI4_IRQn ;6 NVIC_Conf . NVIC_IRQChannelCmd = ENABLE;7 NVIC_Conf . NVIC_IRQChannelPreemptionPriority = 15 ;8 NVIC_Conf . NVIC_IRQChannelSubPriority = 1 ; // Segunda maior sub−p r i o r i d a d e9 NVIC_Init(&NVIC_Conf) ;

10

11 // Ativa a TIM2_IRQn12 NVIC_Conf . NVIC_IRQChannel = TIM2_IRQn;13 NVIC_Conf . NVIC_IRQChannelCmd = ENABLE;14 NVIC_Conf . NVIC_IRQChannelPreemptionPriority = 15 ;15 NVIC_Conf . NVIC_IRQChannelSubPriority = 0 ; // Maior sub−p r i o r i d a d e

p o s s i v e l16 NVIC_Init(&NVIC_Conf) ;

A.5 Configurações da USART para Comunicação viaBluetooth

O trecho de código abaixo configura a USART2 do microcontrolador com os parâme-tros dados no datasheet do módulo HC-05.

1 void USART2_pool_conf ( void ) {2 // I n i c i a USART2 TX/RX no modo poo l ing3 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE) ;4

5 USART_InitTypeDef USART_conf ;6 USART_conf . USART_BaudRate=9600; // taxa padrao do HC−057 USART_conf . USART_HardwareFlowControl=USART_HardwareFlowControl_None ;8 USART_conf .USART_Mode=USART_Mode_Rx|USART_Mode_Tx; //Pode env ia r e

r e c ebe r dados v ia b luetooth9 USART_conf . USART_Parity=USART_Parity_No ;

10 USART_conf . USART_StopBits=USART_StopBits_1 ;11 USART_conf . USART_WordLength=USART_WordLength_8b ;12

13 USART_Init (USART2,&USART_conf) ;14 USART_Cmd(USART2,ENABLE) ;15 }

Page 67: SistemaRobóticoMóvelUtilizandoTécnicas … · 2018-06-12 · O que a modelagem cinemática faz é obter relações matemáticas ... Um robô móvel de navegação autônoma é,

A.5. Configurações da USART para Comunicação via Bluetooth 65

E o trecho de código que envia os dados vistos na Figura 33 está descrito abaixo:1 whi le (1 )2 {3 ( . . . )4 s p r i n t f (mensagem , "\n Ang i n i c i a l : %4.1 f \n Ang atua l : %4.1 f \n PWM

Esquerda : %d \n−−−−−−−−−−−−−−−−−−−−−−−−−−\n " , ang , ang_atual ,vel_esquerda ) ;

5 e n v i a S e r i a l (mensagem) ;6 }

Onde (...) representa todas as configurações vistas no Capítulo 4, inclusive o aferi-mento dos ângulos inicial e atual que são enviados neste trecho. E a função enviaSerial édada por:

1 void e n v i a S e r i a l ( char msg [ ] ) {2 i n t index ;3 f o r ( index =0; index<s t r l e n (msg) ; index++){4 whi le ( USART_GetFlagStatus (USART2, USART_FLAG_TXE)==0){} //Aguarda ate

que o dado a n t e r i o r s e j a t ransmi t ido5 USART_SendData(USART2, msg [ index ] ) ;6 }7 }