controle de trajetórias embarcado - up...o sistema embarcado é responsável por receber as...

88
UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA DA COMPUTAÇÃO ANTONIO JOAQUIM FERREIRA SOARES NETO Controle de Trajetórias Embarcado Prof. Valfredo Pilla Junior Orientador Curitiba, dezembro de 2010.

Upload: others

Post on 08-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

UNIVERSIDADE POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

CURSO DE ENGENHARIA DA COMPUTAÇÃO

ANTONIO JOAQUIM FERREIRA SOARES NETO

Controle de Trajetórias Embarcado

Prof. Valfredo Pilla Junior

Orientador

Curitiba, dezembro de 2010.

Page 2: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

iii

UNIVERSIDADE POSITIVO

Reitor: Prof. José Pio Martins

Vice-Reitor: Prof. Arno Antonio Gnoatto

Pró-Reitor de Graduação: Prof. Renato Casagrande

Diretor Acadêmico: Prof. Marcos José Tozzi

Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin

Page 3: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

iv

Page 4: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

v

Agradecimentos

Agradeço a todos que cooperaram para o desenvolvimento do projeto diretamente

ou indiretamente, colegas de classe, colegas de curso, a todos os professores, e em

especial aqueles que me deram essa oportunidade e trabalharam duro para isso: meus

pais.

Page 5: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

vi

Page 6: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

vii

SUMÁRIO

LISTA DE ABREVIATURAS E SIGLAS ...................................................... IX

LISTA DE FIGURAS .................................................................................... XI LISTA DE TABELAS ................................................................................. XIII RESUMO ................................................................................................... XV ABSTRACT ............................................................................................. XVII 1 INTRODUÇÃO ........................................................................................... 1

2 ESPECIFICAÇÃO DO PROJETO ............................................................. 3 2.1 Características do Projeto ............................................................................. 3 2.1.1 Requisitos .................................................................................................... 3 2.2 Arquitetura ..................................................................................................... 4 2.2.1 Sistema Usuário .......................................................................................... 4 2.2.2 Sistema Embarcado .................................................................................... 4 2.3 Testes de Validação do Sistema ..................................................................... 5 2.4 Planejamento do Projeto ................................................................................ 5 3 PROJETO .................................................................................................. 7 3.1 Hardware Embarcado .................................................................................... 7 3.1.1 Controlador ................................................................................................. 7 3.1.2 Posicionamento Inercial ............................................................................. 8 3.1.3 Transreceptor wireless ............................................................................... 8 3.1.4 Driver de Potência ....................................................................................... 9 3.2 Firmware ........................................................................................................ 10 3.2.1 Cálculo da Posição Instantânea ............................................................... 10 3.2.2 Cálculo da Interpolação ........................................................................... 12 3.2.3 Controle do Veículo .................................................................................. 15 3.3 Protocolo de Comunicação entre os transreceptores ................................ 15 3.4 Hardware Usuário ......................................................................................... 16 3.5 Software Usuário ........................................................................................... 17 4 RESULTADOS ......................................................................................... 19 4.1 Validação do Algoritmo de Interpolação.................................................... 19 4.2 Validação da Comunicação Sem-fio ........................................................... 22 4.3 Validação do Controle do Veículo ............................................................... 23 4.4 Validação do Algoritmo de Posicionamento Inercial ................................ 25 5 CONCLUSÃO .......................................................................................... 29 REFERÊNCIAS........................................................................................... 31 ANEXO A .................................................................................................... 33 ANEXO B .................................................................................................... 41 ANEXO C .................................................................................................... 53

Page 7: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

viii

Page 8: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

ix

LISTA DE ABREVIATURAS E SIGLAS

ARM Advanced RISC Machine (Maquina RISC Avançada)

RISC Reduced Instruction Set Computer (Computador com Set de Instruções

Reduzido)

E/S Entrada/Saída

V Volts

A Ámpere

m mili

Page 9: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

x

Page 10: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

xi

LISTA DE FIGURAS

Figura 2.1: Arquitetura do Sistema..............................................................................4

Figura 2.2: Fluxograma................................................................................................5

Figura 2.3: Cronograma...............................................................................................6

Figura 3.1: Hardware Embarcado...............................................................................7

Figura 3.2: Esquemático Acelerômetro.......................................................................8

Figura 3.3: Circuito Ponte-H.......................................................................................9

Figura 3.4: Fluxograma da Leitura do Acelerômetro................................................11

Figura 3.5: Fluxograma do cálculo de Interpolação..................................................12

Figura 3.6: Encontrar ponto F....................................................................................13

Figura 3.7: Relação Trigonométrica...........................................................................14

Figura 3.8: Curva Interpolada....................................................................................14

Figura 3.9: Controle do Veículo................................................................................15

Figura 3.10: Interface Humano-Computador............................................................17

Figura 4.1: Curva Teste 01........................................................................................19

Figura 4.2: Curva Teste 02........................................................................................20

Figura 4.3: Curva Teste 03........................................................................................21

Figura 4.4: Movimentação Veículo...........................................................................24

Figura 4.5: Medidas do Veículo..............................................................................25

Figura 4.6: Trajetória Calculada x Trajetória Controlada.........................................26

Figura 4.7: Trajetória Calculada x Trajetória Realizada...........................................27

Page 11: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

xii

Page 12: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

xiii

LISTA DE TABELAS

Tabela 2.1: Resumo dos Recursos...............................................................................6

Tabela 3.1: Ligação entre placa eLPC64 e Processador.............................................7

Tabela 3.2: Ligação entre eLPC64 e Acelerômetro....................................................8

Tabela 3.3: Interligação ZigBee e Controlador..........................................................9

Tabela 3.4: Interligação Ponte-H e Controlador.......................................................10

Tabela 4.1: Tabela Teste 01......................................................................................20

Tabela 4.2: Tabela Teste 02......................................................................................21

Tabela 4.3: Tabela Teste 03......................................................................................22

Tabela 4.4: Leituras Offset........................................................................................25

Tabela 4.5: Tabela Valores Lidos Posicionamento Inercial.....................................27

Page 13: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

xiv

Page 14: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

xv

RESUMO

Um sistema de orientação é importante para um sistema móvel se localizar sem

necessitar de referências externas, como o sistema de GPS (Global Positioning System)

que em áreas fechadas ou em condições desfavoráveis do tempo não tem uma boa

visibilidade dos satélites. Este trabalho se dedica a um controle de trajetórias embarcado

que controla os movimentos do veículo de acordo com os parâmetros de entrada em um

ambiente previamente mapeado. As trajetórias estabelecem uma conexão através de

uma curva interpolada entre dois pontos, podendo esta curva ser uma reta ou um arco,

artifício necessário para contornar obstáculos conhecidos. A partir das coordenadas de

chegada escolhidas pelo usuário em uma tela de configuração, os dados são enviados

através de uma comunicação serial para o microcontrolador. Durante o percurso do

veículo, o sistema de posicionamento inercial estima as coordenadas atuais do veículo

para se ter um melhor controle e para a validação do resultado obtido.

Palavras-Chave: Acelerômetro, Interpolação de Curvas, Posicionamento Inercial,

Cálculo de Trajetória, Veículo Rádio-Controlado.

Page 15: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

xvi

Page 16: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

xvii

ABSTRACT

An orientation system is important to a mobile system for locating himself without

the requirement of external references, as the GPS (Global Positioning System) does not

have good visibility of satellites in enclosed areas or in adverse weather conditions. This

paper focus on an embedded trajectory controller that performs the vehicle's movements

according to input parameters in a previously mapped environment. The trajectories

establish a connection through interpolated curve between two points, this curve may be

a straight line or a bowed curve, a subterfuge necessary to circumvent known obstacles.

From destination coordinates chosen by the user in a configuration screen, the data is

sent via serial communication to the microcontroller. During the course of the vehicle,

the inertial positioning steering system the current coordinates of the vehicle to have

better control and to validate the outcome.

Keywords: Accelerometer, Interpolation Curves, Inertial Positioning, Trajectory

Calculation, Radio-Controlled Vehicle.

Page 17: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

1

1 INTRODUÇÃO

Um sistema de orientação é importante para um sistema móvel se localizar sem

necessitar de referências externas, podendo essas referências externas serem um

comando enviado por uma pessoa ou um computador. Este sistema é importante em

diversas áreas, como a área industrial (FERREIRA, 2004), busca de sobreviventes em

acidentes (WOLF et al, 2003), e atualmente tem-se uma ampla pesquisa para controle

autônomo de veículos pessoais (OSÓRIO et al, 2001).

Este trabalho trata-se de um projeto de controle de trajetórias embarcado. O controle

de trajetórias é usado para direcionar o movimento de um veículo elétrico com

configuração remota em um ambiente previamente mapeado. Definida uma trajetória

(reta ou curva) determinam-se as ações de movimentação do veículo. As trajetórias

estabelecem uma conexão através de curva interpolada entre dois pontos do mapa. A

curva pode ser uma reta, um arco ou composição de arcos, artifício necessário para

contornar obstáculos conhecidos. A partir das coordenadas de partida e chegada e da

seleção da curva (ou curvas) um algoritmo de interpolação determina a trajetória do

veículo. O cálculo de interpolação, que é uma forma de representar dados em uma

função, é realizado para se ter a aproximação da função da curva desejada que não se

pode ter previamente (BARROSSO et al, 1987), pois pode-se gerar curvas diferentes

para cada tipo de situação com poucos dados de entrada.

Durante o percurso do veículo o sistema de posicionamento inercial (CAMPOS et

al, 2003) faz a aproximação das coordenadas atuais para um melhor controle do veículo

assim como para validação do resultado obtido. O Controlador é embarcado em

microcomputador dedicado com microcontrolador ARM, que tem como características

principais o baixo consumo de energia e o alto poder de processamento (SOUSA,

2006), onde a trajetória de um veículo configurado remotamente é realizada segundo a

trajetória definida pela equação de interpolação.

Palavras-Chave: Acelerômetro, Interpolação de Curvas, Posicionamento Inercial,

Cálculo de Trajetória, ARM, Veículo Rádio-Controlado.

Page 18: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

2

Page 19: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

3

2 ESPECIFICAÇÃO DO PROJETO

O controle de trajetórias embarcado viabiliza a locomoção de um veículo

configurado remotamente em um ambiente previamente mapeado, de forma a desviar de

obstáculos e assim chegar à coordenada determinada previamente. Com isto, tem-se um

veículo capaz de se locomover sem nenhuma interferência externa, fazendo um

processamento completamente autônomo.

Este pode ser utilizado onde a atuação de eventos externos (controle humano e

outros) não pode ser utilizada ou onde não é possível fazê-lo, desta forma o controle de

trajetórias embarcado comanda o veículo em um ambiente predeterminado para chegar

a um destino final, podendo ser este destino um ambiente de difícil acesso ou até

mesmo um local de grande risco para seres-humanos.

2.1 Características do Projeto

Processamento de cálculo de curvas por interpolação.

Controle de veículo-rádio controlado.

Microcomputador – Central de Comando.

2.1.1 Requisitos

Ambiente amplo e previamente mapeado.

Veículo para controle.

Page 20: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

4

2.2 Arquitetura

A arquitetura é dividida em duas partes, para facilitar o entendimento do sistema.

A primeira parte trata do sistema embarcado no veículo, a segunda trata sobre o sistema

comandado pelo usuário. A Figura 2.1 elucida estas duas partes do projeto.

Figura 2.1: Arquitetura do Sistema

2.2.1 Sistema Usuário

O sistema do usuário é dividido em duas partes, o software de controle e a

comunicação wireless.

O software consiste em uma tela para a entrada da coordenada final da trajetória e

configuração da serial. Também é responsável por mostrar a curva a ser realizada que é

calculada pelo próprio software, através do cálculo de interpolação, e a curva que o

veículo realizou.

O hardware do sistema do usuário é composto de um transreceptor wireless, para a

interligação entre o transreceptor e o computador pessoal é utilizada apenas uma

interface USB sem a necessidade de configurações adicionais. A Figura 2.1 mostra o

hardware necessário.

2.2.2 Sistema Embarcado

O sistema embarcado é responsável por receber as coordenadas do ponto final,

realizar o cálculo de interpolação, fazer o controle do veículo a partir do cálculo

realizado, e por fim fazer a leitura do posicionamento inercial e enviar os pontos para o

software do usuário. O cálculo de interpolação é o mesmo utilizado no software do

usuário. A Figura 2.2 apresenta o que foi descrito em forma de fluxograma.

O hardware deste sistema é composto pelo controlador, que centraliza o

processamento, um driver de potência para controle dos motores através do controlador,

um sistema de posicionamento inercial, que é responsável pela leitura da posição atual

do veículo, e um transreceptor wireless que recebe e envia mensagens ao computador

pessoal. A Figura 2.1 mostra o diagrama em blocos do hardware.

Page 21: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

5

Figura 2.2: Fluxograma

2.3 Testes de Validação do Sistema

Os testes de validação do sistema foram divididos em etapas, fazendo assim o teste

de cada parte isoladamente, teste do cálculo de interpolação, utilizando a simulação do

ambiente de desenvolvimento, e comparando com resultados esperados para aqueles

dados inseridos; teste de comunicação entre módulos transreceptores wireless, para

verificar a integridade dos dados, assim como sua ordem de chegada e teste do sistema

completo em um ambiente fechado e previamente mapeado, comparando a trajetória do

veículo com a trajetória esperada anteriormente calculada pela Interpolação.

2.4 Planejamento do Projeto

Na Figura 2.3 é mostrado o cronograma para o desenvolvimento do trabalho de

conclusão de curso, ele foi divido em 3 partes principais, sendo a primeira a

Documentação, composta por todas as entregas e documentos elaborados durante o

trabalho, assim como as datas de entrega e o tempo empregado para desenvolver cada

etapa.

Outra divisão foi a do Software, mostrando todos os passos principais para o

desenvolvimento do firmware utilizado no sistema de Controle de trajetória embarcado.

E por último a parte do Hardware, onde mostra o tempo que se levou para fazer a

adaptação do controle do veículo configurado remotamente.

Page 22: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

6

Figura 2.3: Cronograma

Na Tabela 2.1 está o resumo dos recursos necessários para o desenvolvimento do

Controle de Trajetórias embarcado.

Tabela 2.1: Resumo dos Recursos

Descrição Total

Mão-de-obra R$ 43.300,00

Software e desenvolvimento R$ 561,67

Equipamentos e Insumos R$ 495,68

Espaço físico R$ 392,00

Documentação e gastos extras R$ 250,00

Custo estimado para Produção do Protótipo R$ 1.000,00

Impostos R$ (392,00)

TOTAL R$ 45.607,35

Page 23: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

7

3 PROJETO

3.1 Hardware Embarcado

O Hardware é composto por 5 módulos, sendo 3 coordenados pelo controlador do

sistema. A Figura 3.1 ilustra o esquemático geral do hardware embarcado, que será

explicado em partes a seguir.

Figura 3.1: Hardware Embarcado

3.1.1 Controlador

O controlador é um microcontrolador ARM7 responsável pelo processamento do

sistema, controle de entrada e saída, e comunicação com a Central de Comandos para

validação dos resultados.

O microcontrolador utilizado é o LPC2148 [PHILIPS, 2005] que está em uma placa

nomeada eLPC64 produzida pela eSystech, esta placa é acoplada no kit da eSystech

chamado ELPC2122 [ESYSTECH, 2008] para fins de debug, conexões com o

computador e outras funções. No projeto a placa utilizada é a eLPC64, que contém o

processador ARM e fornece uma barra de pinos para acesso total ao microcontrolador, a

Tabela 3.1 mostra a pinagem utilizada entre as conexões do ARM7 e a barra de pinos da

placa eLPC64.

Tabela 3.1: Ligação entre placa eLPC64 e Processador

Placa eLPC64 ARM7 Descrição

01 VSS Terra digital.

03 VDD Alimentação.

25 P 0.1 Rx, receptor comunicação serial.

26 P 0.0 Tx, transmissor comunicação serial.

27 P 0.9 Pino bidirecional (E/S) com controle individual.

28 P 0.8 Pino bidirecional (E/S) com controle individual.

29 P 0.11 Pino bidirecional (E/S) com controle individual.

47 VSSA Terra analógico.

52 P 0.23 Conversor AD1.

54 P 0.8 Conversor AD2.

Page 24: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

8

3.1.2 Posicionamento Inercial

O módulo do Posicionamento Inercial é composto por um acelerômetro de 3 eixos

da empresa Freescale Semicondutor, sendo o modelo utilizado o MMA7260QT

[FREESCALE, 2008]. A cada intervalo de tempo, o microcontrolador faz a leitura das

entradas do conversor AD, que estão ligadas diretamente aos eixos X e Y do

acelerômetro, recebendo assim a aceleração naquele instante. Através de duas integrais

tem-se a posição do veículo naquele instante de tempo. O algoritmo de aquisição

implementado no Controlador pode ser visto com mais detalhes no item 3.2.1.

A alimentação do acelerômetro é feita por uma fonte de 3,3V e a sensibilidade

configurada é de +-1,5G, que corresponde a uma variação típica de 800 mV/G.

A Figura 3.2 mostra o esquemático da montagem do acelerômetro.

Figura 3.2: Esquemático Acelerômetro

A ligação do acelerômetro é feita diretamente aos pinos da placa eLPC64 na Tabela

3 é mostrado as conexões entre o kit e o acelerômetro, assim como descrito as funções

dos pinos do acelerômetro.

Tabela 3.2: Ligação entre eLPC64 e Acelerômetro

eLPC64 Acelerômetro Descrição

52 Xout Conversor AD - Tensão de saída do eixo X

54 Yout Conversor AD - Tensão de saída do eixo Y

3.1.3 Transreceptor wireless

O módulo transreceptor wireless é responsável pela comunicação entre o controlador

e a Central de Comando. A tecnologia de radiofrequência utilizada foi o ZigBee. ZigBee

é uma associação de empresas que trabalham para permitir comunicação sem fio

confiáveis, eficazes, de baixo consumo e que possam ser utilizados em monitoramento e

controle de produtos baseado em uma forma de padrão aberto e de acesso global

[ZIGBEE ALLIANCE, 2010], a ZigBee Alliance determina o padrão a ser utilizado na

tecnologia ZigBee, e as fabricantes montam os chips baseados nesse padrão. O

Page 25: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

9

componente utilizado é o fabricado pela empresa MaxStream, o XBee Pro

[MAXSTREAM, 2006] tem como principais características uma comunicação em área

urbana de até 100m, e em campo aberto de até 1500m, um consumo de transmissão de

até 235mA e de recepção até 55mA, e em modo de baixo consumo de apenas 10µA. A

comunicação é dividida em duas: ZigBee-Controlador e ZigBee-Central.

Ambos os ZigBee, assim como a serial do controlador, são configurados com uma

taxa de transferência de 38400b/s, 8bits, nenhum bit de paridade, e 1 bit de parada.

O ZigBee-Central é conectado ao computador através da USB, isto é possível graças

a um adaptador Serial-USB (RS232-USB) que foi adquirido junto ao XBee Pro. A

conexão entre o ZigBee e o controlador é feito diretamente por meio dos canais de

comunicação Rx e Tx, os pinos interligados podem ser vistos na Tabela 3.3.

Tabela 3.3 – Interligação ZigBee e Controlador

eLPC64 ZigBee Descrição

25 DOUT Recepção de dados.

26 DIN Transmissão de dados.

3.1.4 Driver de Potência

O driver de potência é necessário para o acionamento e controle dos motores de

direção e avanço do veículo, pois a corrente consumida pelos motores, que é de 400mA,

é superior a corrente que o controlador pode fornecer nos pinos de I/O. Neste projeto

utiliza-se uma ponte-H, que tem a direção controlada pelos pinos de I/O do controlador,

cuja finalidade é acionar uma fonte de alimentação adicional, específica para os

motores, fazendo com que o consumo dessa fonte adicional não influencie o

funcionamento dos outros módulos envolvidos, tais como controlador, transreceptor

wireless e o sistema de posicionamento inercial, garantindo uma maior autonomia ao

sistema. A Figura 3.3 mostra o circuito utilizado e a Tabela 3.4 indica as interligações

entre o controlador, o driver de potência e o motor.

Figura 3.3: Circuito Ponte-H

Page 26: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

10

Tabela 3.4: Interligação Ponte-H e Controlador

eLPC64 Ponte-H

27 Dir_0

28 Dir_1

3.2 Firmware

O firmware do sistema embarcado foi divido em 3 partes: a primeira que realiza o

cálculo da posição instantânea (tópico 3.2.1), a segunda que efetua o cálculo da

interpolação (tópico 3.2.2), a terceira responsável pelo controle do veículo (tópico

3.2.3).

Esta divisão foi feita apenas para um melhor detalhamento e entendimento dos

algoritmos, pois são executados de forma concorrente no microcontrolador e são

detalhadas a seguir.

3.2.1 Cálculo da Posição Instantânea

A leitura do acelerômetro é realizada a cada 10ms, para assim atualizar a posição do

veículo em um curto espaço de tempo e ter maior precisão. O dado lido pelos canais AD

sofre uma operação matemática para ser transformado em posição. A operação

matemática é descrita a seguir:

1ª Etapa – Cálculo de transformação da leitura do AD em tensão

VoltsRx = AdcRx * VRef / 1023 (Eq. 01)

AdcRx – Corresponde a leitura feita pelo AD em 10 bits.

VRef – Tensão de referencia do AD, no caso é utilizada uma tensão de 3,5V.

1023 – Corresponde a resolução do AD, que é 10 bits, logo 2^(10 -1.)

VoltsRx – Terá o valor em Volts da leitura feita pelo AD.

2ª Etapa – Cálculo da Variação de Tensão

Esta etapa calcula a diferença (offset) da tensão no equilíbrio, o ideal seria 0, mas

existe uma diferença, e para determina-la é realizado este cálculo.

DeltaVoltsRx = VoltsRx - (VRef/2,0) (Eq. 02)

VoltsRx – Corresponde ao valor lido pelo AD em Volts.

VRef – Tensão de referência do AD (3,5V).

2,0 – Divisor, ele tem como valor padrão 2.0, pois o acelerômetro na posição de

equilíbrio tenderia a 0, logo ele varia de +1,5G até -1,5G, no caso aplicado, essa

variação é 0 até Vref.

DeltaVoltRx – terá o valor transformado, onde o +1,5G corresponde a 3,5V e o

-1,5G corresponde a 0V.

3ª Etapa – Aceleração

Esta etapa faz o cálculo da aceleração instantânea do acelerômetro.

Rx = (DeltaVoltsRx / Sensitivity) (Eq. 03)

Page 27: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

11

DeltaVoltsRx – É o valor lido do acelerômetro na escala de 0 a Vref.

Sensitivity – É a sensibilidade com que o acelerômetro foi configurado, esta

configuração é de 800mV/G, ou seja a cada G (aceleração) em um eixo, é aumentado ou

diminuído 800mV da saída do acelerômetro.

Rx – Terá o valor da aceleração em m/s ao final desse cálculo.

4ª Etapa – Cálculo da Velocidade

Esta etapa realiza uma integral a partir da aceleração, obtendo assim o valor da

velocidade naquele instante de tempo.

vel_x = vel_x + 0,4*Rx (Eq. 04)

Rx – é o valor da aceleração instantânea, medida naquele instante de tempo.

0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms

Vel_x – é a soma de todas as velocidades desde o tempo inicial (0).

5ª Etapa – Cálculo da Posição

Esta etapa realiza uma integral a partir da velocidade, obtendo assim o valor da

posição naquele instante de tempo.

pos_x = pos_x + 0,4*vel_x (Eq. 05)

vel_x – é o valor da velocidade que foi acumulada até o instante de tempo atual.

0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms.

pos_x – é a soma de todas as posições desde o tempo inicial (0).

O fluxograma deste tratamento sobre a leitura do acelerômetro pode ser visto na

Figura 3.4.

Figura 3.4: Fluxograma da Leitura do Acelerômetro

Page 28: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

12

3.2.2 Cálculo da Interpolação

Calcula-se a interpolação a partir das coordenadas x e y inseridas no módulo, com

isso, este módulo de software, faz o cálculo da interpolação, que corresponde a curva

desejada, o que o veículo deve replicar na forma real. Um y positivo indica que a curva

será para a direita, e um y negativo implica em uma curva para a esquerda. O valor de x

não pode ser negativo, pois o veículo deve andar somente para frente. K1 e k2 são duas

constantes que implicam na curvatura do trajeto feito pelo veículo. A Figura 3.5 ilustra

o fluxograma deste módulo.

Figura 3.5: Fluxograma do cálculo de Interpolação

A seguir são mostrados todos os cálculos efetuados para a interpolação de forma

mais detalhada.

A primeira coisa a ser fazer é encontrar um ponto intermediário, este ponto indica o

tamanho da curvatura e onde esta curva será mais acentuada. Para isso foi necessário a

inserção de 2 parâmetros, k1 e k2.

O ponto intermediário é calculado a partir da relação entre a distância dos pontos

iniciais e finais, e de k1 e k2. A Figura 3.6 mostra de forma gráfica este problema.

Page 29: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

13

Figura 3.6: Encontrar ponto F

O ponto a, aqui será tratado como ponto inicial, que nesta implementação será

sempre considerado com coordenadas 0,0. O ponto b é o nosso ponto final, onde o

veículo chega ao final do processamento. O ponto f é o nosso ponto intermediário, que

deve ser calculado a partir das relações de k1 e k2.

O primeiro cálculo efetuado é a distância entre os pontos iniciais e finais (a e b).

Para isso foi utilizada a equação 06:

D = √ ((bx-ax)2 + (by-ay)

2) (Eq. 06)

Onde bx é o valor de x do ponto b, ax o valor de x do ponto a, by o valor de y do

ponto b e ay o valor de y do ponto a.

Encontrado a distância, pode-se encontrar os valores de d1 e d2 mostrados na Figura

3.7, segundo as equações 07 e 08:

d1 = k1*D (Eq. 07)

d2 = k2*D (Eq. 08)

Agora o valor de δ deve ser encontrado, para assim, encontrarmos d3. Seguindo

estas equações 09 e 10:

δ = arc tg (by / bx) (Eq. 09)

d3 = √ ((d1-d2)2) (Eq. 10)

O próximo passo é encontrar α e θ para se calcular o ponto intermediário.

Para isso foi utilizado as equações 11, 12 e 13:

θ = arc tg (d2/d1) (Eq. 11)

α = 90 – δ – θ, para curvas a direita e (Eq. 12)

α = 90 – δ + θ, para curvas a esquerda. (Eq. 13)

Com isto, o valor de fx e fy pode ser encontrado por meio das equações 14 e 15:

fy = cos α * d3 (Eq. 14)

fx = sem α * d3 (Eq. 15)

A Figura 3.7 mostra as relações trigonométricas utilizadas para encontrar o ponto

intermediário.

Page 30: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

14

Figura 3.7: Relação Trigonométrica

Com os valores dos pontos iniciais, finais e intermediários (a, b e f respectivamente),

podemos encontrar a equação de Interpolação, partindo da equação 16, de Lagrange,

onde:

y0 = a0 + a1x0 + a2x02 + ... + anxn

2 (Eq. 16)

Substituindo pelos pontos encontrados temos:

ay = a0 + a1ax + a2ax2 (Eq. 17)

by = a0 + a1bx + a2bx2 (Eq. 18)

fy = a0 + a1fx + a2fx2 (Eq. 19)

Resolvendo a equação 17, encontra-se a0 com valor 0, isso faz com que as outras

equações não tenham o termo a0, tendo assim 2 equações e duas incógnitas, podendo

resolver o sistema pelo método de substituição, obtendo como resultado as seguintes

equações:

a1 = (fx*bx2 – by*fy

2) / (fx*bx

2 – fx

2*bx) (Eq. 20)

a2 = (by – a1*bx) / bx2 (Eq. 21)

Com as equações 20 e 21, a curva já pode ser encontrada, a Figura 3.8 mostra uma

simulação desta curva.

Figura 3.8: Curva Interpolada

Page 31: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

15

3.2.3 Controle do Veículo

O controle do veículo é obtido por meio de dois limites para a curva calculada, esses

limites são criados com uma diferença de 0,5 para a direita e de -0,5 para a esquerda. O

controlador envia comandos para virar para a direita ou para a esquerda dependendo da

situação do cruzamento entre a curva calculada, e a curva que está sendo gerada através

dos dados recebidos pelo acelerômetro, a Figura 3.9 mostra o fluxograma deste

controle.

Figura 3.9: Controle do Veículo

3.3 Protocolo de Comunicação entre os Transreceptores

A comunicação feita com a Central de Comando é realizada nas duas direções, o

controlador irá receber as coordenadas finais, e o comando de iniciar a trajetória.

Page 32: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

16

A Central de Comando recebe os dados do controlador para atualizar o gráfico

gerado na tela para acompanhamento do usuário.

O protocolo de comunicação é descrito a seguir:

Central de Comando envia para o Controlador

Comando: Entrada da Posição Final

Central: @ | dadosX | # | dadosY | # | dadosk1 | # | dadosk2 | ? |!

Controlador: @|? |!

Descrição: A Central envia a posição Final para o controlador, e aguarda uma

mensagem de confirmação.

Comando: Inicia Trajetória

Central: @ | iniciar | % |!

Controlador: @ | % |!

Descrição: A Central envia um comando para iniciar a trajetória e aguarda uma

mensagem de confirmação do controlador.

Controlador envia para a Central de Comando

Comando: Envio Posições do Acelerômetro

Controlador: @ | dadosX | # | dadosY | $ |!

Descrição: Controlador envia posições recebidas do acelerômetro de tempo em

tempo para a Central de Comando.

Comando: Trajetória Finalizada

Controlador: @ | * |!

Descrição: O controlador envia uma mensagem para A Central, indicando que a

trajetória foi efetuada.

3.4 Hardware Usuário

O hardware do usuário é composto apenas por um transreceptor wireless com

comunicação serial por meio da conexão USB. Toda a conversão USB-Serial é feita

diretamente pelo modulo usado, pois este já vem de fabrica com um conversor USB-

Serial.

Page 33: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

17

3.5 Software Usuário

O software do usuário é composto por uma tela de configuração, e uma outra parte

importante desde software é o cálculo de interpolação de curva, que já foi explicado no

tópico 3.2.2.

A interface homem-maquina é feita exclusivamente na Central de Comando, pois

aqui existe uma interação entre uma pessoa e o computador, que está transmitindo

mensagens com o controlador, para isso foi desenvolvida uma interface onde é inserido

os dados iniciais, tais como xFinal, yFinal, k1 e k2, e o comando de Calcular e Iniciar

trajetória.

Existem também outras configurações, como a configuração da interface de

comunicação serial. E foi implementado uma função onde o usuário pode criar uma

trajetória composta, para isso deve-se inserir todas as coordenadas que compõem a

trajetória requerida, para cada trecho da trajetória composta é necessário clicar no botão

“Adicionar”, assim o software entende como sendo uma trajetória composta e acumula

os dados inseridos em um vetor, realiza o envio das coordenadas uma a uma

automaticamente depois do comando de iniciar a trajetória, e por fim aguarda a

conclusão de cada uma e avisa ao usuário que a trajetória foi efetuada com sucesso.

Outro botão “Reta” foi adicionado, permitindo ao usuário fazer com que o veículo se

locomova em uma reta por um intervalo de tempo pré-tederminado, esse intervalo é de

200ms, ou seja, o veículo percorre uma reta por 200ms. A Figura 3.10 mostra a

interface utilizada.

Figura 3.10: Interface Humano-Computador

Page 34: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

18

Page 35: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

19

4 RESULTADOS

O sistema foi inicialmente testado em partes que são descritas a seguir:

4.1 Validação do Algoritmo de Interpolação

Foram feitos diversos testes do algoritmo de interpolação, primeiramente estes testes

foram feitos no software da Central de Comando, para gerar as curvas e ter uma analise

melhor do algoritmo utilizado para o cálculo da interpolação da curva. Aqui foi testado

apenas o funcionamento do algoritmo. Em todos os testes, foi utilizado uma diferença

de 0,1 para cada ponto.

A seguir é mostrado 3 cálculos com parâmetros de entrada diferentes:

1º Cálculo: xFinal = 2; yFinal = 2; k1 = 0,5; k2 = 0,25

Figura 1.1: Curva Teste 01

Conforme o algoritmo mostrado no tópico 3.2.2, seguem os valores calculados:

D = 2,828 δ = 0,785 α = 0,321 B = 3,666 by = 2,016

d1 = 1,414 d3 = 1,581 fx = 0,499 A = -1,333

d2 = 0,707 θ = 0,463 fy = 1,500 bx = 1,99

A Tabela 4.1 mostra todos os valores que foram plotados no gráfico da Figura 4.1

gerados pelo software através do cálculo de interpolação.

Page 36: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

20

Tabela 4.1: Tabela Teste 01

x y x y

0,1 0,353 1,1 2,420

0,2 0,680 1,2 2,480

0,3 0,980 1,3 2,513

0,4 1,253 1,4 2,520

0,5 1,500 1,5 2,500

0,6 1,720 1,6 2,453

0,7 1,913 1,7 2,380

0,8 2,080 1,8 2,280

0,9 2,220 1,9 2,153

1,0 2,333

Como pode-se observar tanto na Tabela 4.1 quanto na Tabela 4.2 que contém os

valores utilizados para plotagem do gráfico, o valor de y passa o limite imposto (yFinal)

que seria de 2, na Tabela isso pode ser visto no valor de x igual a 0,8, onde o y é igual a

2,080, e mais claramente no valor de x igual a 1,4 onde o valor de y é igual a 2,52, isso

se deve ao fato de que o algoritmo utilizado para o cálculo de interpolação usar como

base para cálculos uma equação de parábola. Se o cálculo continuasse seria possível

verificar que o ponto Máximo da parábola se encontra exatamente no ponto x igual a

1,4 e y igual a 2,52.

2º Cálculo: xFinal = 1; yFinal = 5; k1 = 0,9; k2 = 0,1

Figura 4.2: Curva Teste 02

Conforme o algoritmo mostrado no tópico 3.2.2, seguem os valores calculados:

D = 5,099 δ = 1,374 α = 0,086 B = 15,833 by = 5,057

d1 = 4,589 d3 = 4,617 fx = 0,399 A = -10,833

d2 = 0,509 θ = 0,110 fy = 4,600 bx = 0,990

A Tabela 4.2 mostra todos os valores plotados no gráfico da Figura 4.2 gerados pelo

software através do cálculo de interpolação.

Page 37: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

21

Tabela 4.2: Tabela Teste 02

x (cm) y (cm)

0,1 1,475

0,2 2,733

0,3 3,775

0,4 4,600

0,5 5,208

0,6 5,600

0,7 5,775

0,8 5,733

0,9 5,475

1,0 5

Pode-se observar o mesmo problema encontrado no 1º Cálculo, onde valores do y

acabam ultrapassando o limite estipulado.

3º Cálculo: xFinal = -4; yFinal = 9; k1 = 0,4; k2 = 0,1

Figura 4.3: Curva Teste 03

Conforme o algoritmo mostrado no tópico 3.2.2, seguem os valores calculados:

D = 9,848 δ = -1,152 α = -0,173 B = -6,449 by = 9,000

d1 = 3,939 d3 = 4,060 fx = -0,699 A = -1,049

d2 = 0,948 θ = 0,244 fy = 4,000 bx = -3,999

A Tabela 4.3 mostra todos os valores plotados no gráfico da Figura 4.3 gerados pelo

software através do cálculo de interpolação.

Page 38: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

22

Tabela 4.3: Tabela Teste 03

x (cm) y (cm) x (cm) y (cm)

-0,1 0,634 -2,1 8,913

-0,2 1,247 -2,2 9,107

-0,3 1,840 -2,3 9,279

-0,4 2,411 -2,4 9,431

-0,5 2,962 -2,5 9,561

-0,6 3,491 -2,6 9,671

-0,7 4,000 -2,7 9,759

-0,8 4,487 -2,8 9,827

-0,9 4,953 -2,9 9,873

-1,0 5,399 -3,0 9,899

-1,1 5,823 -3,1 9,903

-1,2 6,227 -3,2 9,887

-1,3 6,609 -3,3 9,850

-1,4 6,971 -3,4 9,791

-1,5 7,311 -3,5 9,712

-1,6 7,631 -3,6 9,611

-1,7 7,929 -3,7 9,490

-1,8 8,207 -3,8 9,347

-1,9 8,463 -3,9 9,184

-2,0 8,699

Pode-se observar o mesmo problema encontrado no 1º Cálculo e 2º Cálculo, em que

valores do y acabam ultrapassando o limite estipulado.

Para solucionar esse problema foram tentados dois tipos de ajustes. O primeiro foi

criar outro ponto, próximo ao ponto final para forçar com que o ponto Máximo da

parábola ficasse nesse novo ponto, não foi obtido o resultado esperado, pois o ponto

Máximo da parábola continuava no mesmo lugar. A outra alternativa foi forçar a curva

a ser suavizada, fazendo com que quando ultrapassasse o ponto yFinal estabelecido, a

curva iria diretamente para o ponto final em x em forma de reta, esta também não foi

uma solução viável, pois em alguns casos o ponto de ultrapassagem em y era muito

distante do ponto final desejado, fazendo assim uma trajetória bem diferente da

esperada.

Então foi optado por deixar este algoritmo, pois com ele se tem um bom controle das

curvas e bastante possibilidade de curvas, mas em contrapartida ele sempre passa do

ponto y final e assim fazer um retorno até o ponto final.

4.2 Validação da Comunicação Sem-fio

O primeiro teste da comunicação sem-fio utilizando dois módulos ZigBee foi feita

pelo próprio módulo. Utilizando o programa X-CTU para configurações e transmissão

de mensagem da própria MaxSream, fabricante dos módulos, foi possível fazer um

canal de transmissão para testes do módulo. Feito este teste inicial, partiu-se então para

a comunicação efetiva, entre um módulo conectado via USB na Central de Comando e o

Page 39: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

23

outro módulo interfaceado com o controlador pela interface de comunicação serial, mais

precisamente pelos canais de comunicação Rx e Tx.

O primeiro teste de comunicação entre o controlador e o módulo ZigBee foi feito por

meio do kit ELP2122, neste teste ocorreu o funcionamento correto e sem nenhum

problema, não houve perda de dados ou dados corrompidos na transmissão. A distância

máxima de transmissão testada foi de 10 metros, nesse teste também não houve nenhum

problema com os dados.

O segundo teste de comunicação entre o controlador e o módulo ZigBee foi feito

diretamente na placa eLPC2164, sem o auxilio do kit de desenvolvimento, neste teste

foi encontrado um problema, a taxa de transmissão dos dados era diferente da

configurada e também da taxa medida utilizando o kit de desenvolvimento. Este

problema ainda não foi solucionado, pois com os dados do manual do kit não foi

possível localizar uma possível solução. Este problema também pode ser devido a

alguma interferência sofrida durante a montagem do protótipo em protoboard, portanto

este problema pode vir a ser solucionado a partir do momento em que for confeccionada

a placa definitiva do projeto.

4.3 Validação do Controle do Veículo

A validação do controle do veículo foi possível logo no inicio do desenvolvimento,

onde foi verificado se o algoritmo de controle desenvolvido foi executado corretamente.

No inicio do projeto foi utilizado o controle de radiofrequência do próprio veículo, onde

o controlador estava conectado ao controle, que por sua vez transmitia se o carro

deveria ir para frente e/ou fazer curvas para a esquerda ou direita. Esta validação foi

feita por meio de inferência visual, pois por motivos que será explicado adiante, o

sistema que faria a validação através de aquisição da posição do veículo e estes dados

seriam desenhados em um gráfico para comparação não funcionou corretamente. Um

dos problemas encontrados no controle do veículo foi a velocidade do carro, pois

quando a bateria usada para a alimentação dos motores estava com carga máxima, a

velocidade do carro era alta, quando a bateria estava com meia carga o veículo se

locomovia mais devagar, e isso influencia diretamente no controle do veículo, pois

dependendo da velocidade do carro a trajetória realizada varia. Uma solução para

minimizar esse problema é um limitador de corrente para o motor de avanço, ir para

frente, o resistor utilizado foi calculado a partir dos seguintes dados:

Corrente do Motor = 260mA

Tensão do Motor = 4V

Utilizando a lei de Ohm em que V = R * I, temos:

4 = R * 260m, logo

R = 4 / 260m = 15,38Ω

O resistor utilizado foi o de 15 Ω, com isso a velocidade do veículo se manteve mais

constante, obtendo uma melhor trajetória e sofrendo poucas alterações devido à carga da

bateria.

A Figura 4.4 mostra algumas fotos tiradas do veículo se movimentando.

Page 40: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

24

Figura 4.4: Movimentação Veículo

Nas imagens 01 até 06 da Figura 4.4 é possível verificar a movimentação do veículo.

No tópico 4.4 é mostrado os gráficos que resultaram dessa movimentação.

O veículo utilizado em todo o projeto tem as seguintes características mecânicas:

Comprimento: 23cm;

Largura do Corpo: 6,2cm;

Distância entre os pneus traseiros: 9,4cm;

Distância entre os pneus dianteiros: 8,7cm;

Ângulo de curvatura: 25º;

Peso total do veículo (com baterias, e o sistema embarcado): 320g.

A Figura 4.5 ilustra as medidas do veículo.

Page 41: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

25

Figura 4.5: Medidas do Veículo

4.4 Validação do Algoritmo de Posicionamento Inercial

A validação do algoritmo de posicionamento inercial foi o ultimo a ser feito, por

encontrar diversos problemas na programação do ARM e depois o problema com a

comunicação entre o controlador e o módulo ZigBee, acabou restando pouco tempo

para trabalhar em cima do algoritmo de posicionamento inercial.

Um dos problemas encontrados foram os diversos fenômenos que influenciam

diretamente na leitura do acelerômetro, estes fenômenos são listados a seguir.

1º) Offset do acelerômetro

Durante os testes observou-se que o acelerômetro apresentava valor diferente de

zero mesmo em estado de repouso, isso se deve primeiramente a posição do

acelerômetro no veículo, mas também ao local onde ele se encontra, pois dependendo

da localização, diferença de níveis a leitura é diferente. Um exemplo pode ser visto na

Tabela 4.4.

Tabela 4.4: Leituras Offset

x (cm) y (cm)

0,050403226 0,0625

0,058467742 0,0625

0,058467742 0,0625

0,050403226 0,058468

0,058467742 0,0625

0,054435484 0,074597

0,050403226 0,0625

0,054435484 0,054435

0,0625 0,058468

0,0625 0,0625

Page 42: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

26

Conforme pode ser visto na Tabela 4.4, os valores lidos variam, mas o veículo

durante a leitura estava parado, mostrando a influencia do offset no algoritmo de

posicionamento inercial.

2º) Instabilidade do veículo

Outro problema encontrado foi a instabilidade do veículo, para fazer determinadas

curvas é necessária a rápida transição em virar para um lado e deixar reto, essa transição

é feita em pequenos intervalos de tempo, como fazer 8 viradas para a direita em um

intervalo de 20ms por exemplo, as vibrações derivadas destas curvas no corpo do

veículo faz com que a leitura cause uma instabilidade na leitura do acelerômetro,

dificultando o processo de tratamento da leitura, pois não é uma variação constante e

conhecida. Com o problema da vibração adquirida pelo algoritmo de controle, o veículo

cria uma trajetória com ruídos, a Figura 4.6 mostra o que o veículo precisa fazer para

conseguir fazer uma curva.

Figura 4.6: Trajetória Calculada x Trajetória Controlada

Como pode ser visto na Figura 4.6, para o veículo realizar uma curva é necessário

com que haja uma grande variação no controle da direção, criando assim vibrações no

carro, e essas vibrações interferem diretamente na aquisição da posição do veículo.

Um teste realizado para validar o algoritmo de posicionamento inercial foi feito

realizando a mesma trajetória 14 vezes, a trajetória esperada é mostrada na Figura 4.7.

A Figura 4.7 mostra também a trajetória realizada pelo veículo, tirando uma média dos

valores lidos e desenhados em um gráfico utilizando o software Microsoft Excel. A

Figura 4.7 mostra um gráfico utilizando os valores da Tabela 4.5 e os valores de entrada

calculados por meio da interpolação.

Os parâmetros de entrada foram: xFinal = 2; yFinal = 2; k1 = 0,5; k2 = 0,25

0

0,5

1

1,5

2

2,5

3

-0,5 0 0,5 1 1,5 2

Trajetória Calculada

y(cm)

x(cm)

Page 43: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

27

Figura 4.7: Trajetória Calculada x Trajetória Realizada

Na Tabela 4.5 tem-se os valores tratados pelo algoritmo de posicionamento inercial

usados no gráfico da Figura 4.7.

Tabela 4.5: Tabela Valores Lidos Posicionamento Inercial

x (cm) y (cm) x (cm) y (cm)

0,036 0,009 2,528 0,360

0,089 0,042 2,931 0,367

0,167 0,077 3,341 0,358

0,284 0,070 3,801 0,334

0,395 0,074 4,314 0,307

0,560 0,107 4,863 0,265

0,740 0,156 5,439 0,245

0,961 0,221 6,079 0,227

1,227 0,266

1,493 0,328

1,805 0,361

2,154 0,362

Como pode ser visto na Figura 4.7, a trajetória em si é parecida com a trajetória

desejada, mas ao comparar a escala é possível ver que no eixo x o limite deveria ser 2

mas na trajetória realizada esse valor é de aproximadamente 6, já o eixo y que deveria

ser 2 é de aproximadamente de 0,2. Isso se deve principalmente ao fato do ruído gerado

pela mecânica do veículo interferir aumentando ou diminuindo o valor lido pelo

posicionamento inercial. Foi realizado um teste 14 vezes seguidas, com a mesma

trajetória e sob os mesmas restrições e parâmetros, sendo 5 delas conforme o esperando,

tendo um erro médio de +-0,8cm em cada ponto da trajetória estipulada, tendo assim

uma porcentagem de 35,71 de acerto na trajetória. Os dados das 14 leituras usadas para

gerar o gráfico da Figura 4.7 e do cálculo da porcentagem de acerto pode ser visto no

anexo A.

0

0,5

1

1,5

2

2,5

3

0 1 2 3 4 5 6 7

y (cm)

x (cm)

Curva Calculada

Curva Realizada

Page 44: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

28

Page 45: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

29

5 CONCLUSÃO

Os resultados obtidos durante os testes foram satisfatórios, pois o sistema se mostrou

capaz de executar as curvas estipuladas sem maiores problemas, o algoritmo de controle

do veículo se mostrou eficiente, tendo um índice de trajetória correta em 35%, mas o

grande problema encontrado foi a leitura do sistema de posicionamento inercial, pois

este era muito influenciado pela movimentação do veículo ocasionada pela

movimentação do motor de direção, pois este tem apenas 3 posições, reto, totalmente

para a direita e totalmente para a esquerda, criando assim uma grande vibração na hora

do controle para realizar as curvas.

O sistema também se mostrou bastante flexível, pois após a implementação

proposta, foi possível criar uma nova implementação onde é possível criar uma

trajetória composta de diversas curvas e então enviar ao veículo, podendo assim fazer

uma trajetória fechada, que para o usuário parece ser uma forma, sem a necessidade de

fazer diversas realimentações, como mostrado no item 3.2.5.

Melhorias podem ser realizadas no sistema, tais como criar filtros para o sistema de

posicionamento inercial, para retirar o offset e diminuir os erros de leitura realizados

pelas vibrações do veículo, mudar o veículo em si, trocando para um com mecânica

mais apropriada podendo conter molas ou outros sistemas mecânicos que diminuam as

vibrações de movimentação e terreno.

Page 46: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

30

Page 47: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

31

REFERÊNCIAS

BARROSO, L. C.; BARROSO, M. M. de A.; FILHO, F. F. C.; CARVALHO, M. L. B.

de; MAIA, M. L. Cálculo Numérico: com aplicações. 2.ed. São Paulo: Harbra, 1987.

CAMPOS, Alexandre; SILVA, André L. da. Desenvolvimento de um sistema de

navegação inercial de baixo custo para uso no registro de trajetórias planas. 2003.

XVIII Congresso Regional De Iniciação Científica e Tecnológica (Engenharia

Mecânica) – Universidade Federal de Santa Maria.

ESYSTECH, eLPC-Main 2122: ARM Evaluation Board for eLPC SOM. Manual do

Usuário. Rev. 08/2008.

FERREIRA, Alysson Sarmento. Protótipo de Veículo Autônomo – PVA. 2004. Pós-

Graduação em Engenharia Eletrônica e Computação (PG/EEC) - Instituto Tecnológico

de Aeronáutica, São José dos Campos.

FREESCALE SEMICONDUTOR, MMA7331L. Datasheet. Rev 0, 04/2008.

LINDEN, Ricardo. Algoritmos Genéticos: uma importante ferramenta da Inteligência

Computacional. 2.ed. Rio de Janeiro: Brasport, 2008.

MAXSTREAM, XBee/XBee-PRO OEM RF Modules. Datasheet. Rev. 13/10/2006.

OSÓRIO, Fernando; HEINEN, Falei; FORTES, Luciane. Controle Inteligente de

Veículos Autônomos: Automatização do Processo de Estacionamento de Carros. 2001.

Mestrado em Computação Aplicada - Universidade do Vale do Rio dos Sinos, São

Leopoldo, RS.

PHILIPS SEMICONDUCTORS, LPC2210/2220. Datasheet. Rev. 02,30/05/2005.

SOUSA, Daniel Rodrigues de. Microcontroladores ARM7 (Philips, Família

LPC213X): o poder dos 32 bits. 1.ed. São Paulo: Editora Érica, 2006.

WOLF, A; BROWN, H. B.; CASCIOLA, R.; COSTA, A. ; SCHWERIN, M.;

SHAMAS, E.; CHOSET, H. A Mobile Hyper Redundant Mechanism for Search and

Rescue Tasks. 2003. Department of Mechanical Engineering - Carnegie Mellon

University, Pittsburgh, USA.

ZIGBEE ALLIANCE, Misão, Disponivel em <

http://www.zigbee.org/About/OurMission.aspx>. Acesso em: ago. 2010.

Page 48: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

32

Page 49: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

33

ANEXO A

Aqui é mostrado as tabelas de diversas leituras realizadas durante o teste, destes

valores lidos foi calculado uma média, que foi utilizada para o desenho do gráfico da

figura 4.8 no tópico 4.4.

Tabela 1: Teste 01

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,223790323 0,074596774 0,035806452 0,011935484

-0,631048387 0,445564516 -0,029354839 0,09516129

0,159274194 0,534274194 -0,069032258 0,263870968

-1,022177419 -0,002016129 -0,272258065 0,432258065

0,776209677 -0,590725806 -0,351290323 0,506129032

0,788306452 0,389112903 -0,304193548 0,642258065

-0,219758065 0,243951613 -0,292258065 0,817419355

0,54233871 0,155241935 -0,193548387 1,017419355

0,643145161 -0,421370968 0,008064516 1,15

0,147177419 0,530241935 0,233225806 1,367419355

0,256048387 0,16733871 0,499354839 1,611612903

-0,308467742 -0,147177419 0,716129032 1,832258065

1,155241935 0,594758065 1,117741935 2,148064516

0,272177419 -0,320564516 1,562903226 2,412580645

-0,175403226 -0,502016129 1,98 2,596774194

-0,018145161 0,514112903 2,394193548 2,863225806

0,276209677 -0,530241935 2,852580645 3,04483871

0,288306452 -0,909274194 3,357096774 3,080967742

-0,272177419 -0,651209677 3,818064516 3,012903226

0,296370968 0,614919355 4,326451613 3,043225806

Page 50: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

34

Tabela 2: Teste 02

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,211693548 0,058467742 0,033870968 0,009354839

0,905241935 0,0625 0,212580645 0,028709677

-0,360887097 -0,227822581 0,333548387 0,011612903

-0,356854839 -0,050403226 0,397419355 -0,01354839

0,618951613 0,038306452 0,560322581 -0,03258065

-0,6875 0,356854839 0,613225806 0,005483871

0,659274194 -0,0625 0,771612903 0,033548387

0,8125 0,340725806 1,06 0,116129032

0,131048387 0,122983871 1,369354839 0,218387097

0,969758065 0,050403226 1,833870968 0,328709677

-0,45766129 -0,497983871 2,22516129 0,359354839

0,897177419 -0,0625 2,76 0,38

0,014112903 -0,20766129 3,297096774 0,367419355

-1,139112903 0,179435484 3,651935484 0,383548387

0,465725806 0,481854839 4,081290323 0,476774194

0,433467742 -0,006048387 4,58 0,569032258

-1,139112903 0,050403226 4,896451613 0,669354839

1,231854839 0,256048387 5,41 0,810645161

0,002016129 0,159274194 5,923870968 0,977419355

0,256048387 -0,272177419 6,478709677 1,100645161

Tabela 3: Teste 03

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y

(cm)

0,227822581 0,054435484 0,036451613 0,008709677

0,122983871 0,227822581 0,092580645 0,053870968

-0,195564516 0,006048387 0,117419355 0,1

0,546370968 0,038306452 0,229677419 0,152258065

-0,485887097 -0,377016129 0,264193548 0,144193548

0,836693548 -0,175403226 0,432580645 0,108064516

0,41733871 0,122983871 0,667741935 0,091612903

-0,034274194 0,316532258 0,897419355 0,125806452

0,316532258 0,622983871 1,177741935 0,259677419

-0,635080645 0,143145161 1,356451613 0,416451613

0,252016129 -0,026209677 1,575483871 0,569032258

0,594758065 0,276209677 1,889677419 0,765806452

-0,824596774 0,91733871 2,071935484 1,109354839

0,735887097 0,320564516 2,371935484 1,504193548

-0,030241935 -0,110887097 2,667096774 1,881290323

0,45766129 0,143145161 3,035483871 2,281290323

0,659274194 1,094758065 3,509354839 2,856451613

0,485887097 -0,0625 4,060967742 3,421612903

0,530241935 -0,143145161 4,697419355 3,963870968

0,808467742 0,054435484 5,463225806 4,51483871

Page 51: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

35

Tabela 4: Teste 04

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,227822581 0,058467742 0,036451613 0,009354839

-0,195564516 0,29233871 0,041612903 0,065483871

-0,679435484 -0,030241935 -0,061935484 0,116774194

0,905241935 0,256048387 -0,020645161 0,209032258

-0,756048387 0,8125 -0,100322581 0,431290323

0,320564516 0,328629032 -0,128709677 0,706129032

1,046370968 -0,014112903 0,010322581 0,978709677

-0,239919355 0,106854839 0,110967742 1,268387097

0,272177419 0,441532258 0,25516129 1,628709677

-0,179435484 0,014112903 0,370645161 1,991290323

-0,0625 -0,909274194 0,476129032 2,208387097

1,139112903 0,243951613 0,763870968 2,464516129

-0,20766129 -0,163306452 1,018387097 2,694516129

0,058467742 0,546370968 1,282258065 3,011935484

0,969758065 -0,159274194 1,701290323 3,303870968

0,643145161 -1,127016129 2,223225806 3,415483871

1,272177419 -0,578629032 2,948709677 3,434516129

-1,465725806 0,0625 3,439677419 3,463548387

0,195564516 -0,010080645 3,961935484 3,490967742

0,514112903 -0,941532258 4,566451613 3,367741935

Tabela 5: Teste 05

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y

(cm)

0,223790323 0,050403226 0,035806452 0,008064516

0,4375 -0,256048387 0,141612903 -0,02483871

0,647177419 -0,211693548 0,350967742 -0,0916129

-1,647177419 0,159274194 0,296774194 -0,13290323

0,969758065 0,514112903 0,397741935 -0,09193548

0,546370968 -0,058467742 0,586129032 -0,06032258

-0,776209677 -0,340725806 0,650322581 -0,08322581

0,933467742 -0,143145161 0,863870968 -0,12903226

-0,546370968 0,389112903 0,99 -0,11258065

-0,401209677 -0,663306452 1,051935484 -0,20225806

0,683467742 -0,256048387 1,223225806 -0,33290323

0,304435484 -0,014112903 1,443225806 -0,46580645

0,719758065 -0,328629032 1,778387097 -0,65129032

0,663306452 0,566532258 2,219677419 -0,74612903

0,530241935 -0,776209677 2,745806452 -0,96516129

-0,195564516 -0,659274194 3,240645161 -1,28967742

-0,514112903 0,711693548 3,653225806 -1,50032258

0,941532258 -0,4375 4,216451613 -1,78096774

0,098790323 0,026209677 4,795483871 -2,05741935

0,4375 -0,344758065 5,444516129 -2,38903226

Page 52: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

36

Tabela 6: Teste 06

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,223790323 0,058467742 0,035806452 0,009354839

-0,058467742 -0,098790323 0,062258065 0,002903226

0,965725806 0,002016129 0,243225806 -0,00322581

0,703629032 0,219758065 0,536774194 0,025806452

-0,272177419 -0,566532258 0,786774194 -0,03580645

1,006048387 0,102822581 1,197741935 -0,08096774

-0,993951613 0,106854839 1,449677419 -0,10903226

-0,320564516 -0,114919355 1,650322581 -0,15548387

0,219758065 -0,683467742 1,886129032 -0,31129032

-0,715725806 0,461693548 2,007419355 -0,39322581

0,381048387 -0,905241935 2,189677419 -0,62

-0,102822581 -0,933467742 2,355483871 -0,99612903

0,473790323 -0,4375 2,597096774 -1,44225806

0,659274194 -0,743951613 2,944193548 -2,00741935

-0,546370968 0,288306452 3,203870968 -2,52645161

0,985887097 -0,300403226 3,621290323 -3,09354839

0,627016129 0,328629032 4,139032258 -3,60806452

-0,425403226 -0,453629032 4,588709677 -4,19516129

0,171370968 -0,078629032 5,065806452 -4,79483871

0,510080645 0,360887097 5,624516129 -5,33677419

Tabela 7: Teste 07

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y

(cm)

0,227822581 0,054435484 0,036451613 0,008709677

0,953629032 0,050403226 0,225483871 0,025483871

-0,675403226 0,300403226 0,306451613 0,090322581

1,070564516 0,090725806 0,558709677 0,169677419

1,050403226 0,485887097 0,979032258 0,326774194

-0,199596774 0,247983871 1,367419355 0,523548387

0,655241935 0,352822581 1,860645161 0,776774194

0,030241935 0,211693548 2,358709677 1,063870968

0,445564516 0,389112903 2,928064516 1,413225806

0,828629032 -0,211693548 3,63 1,728709677

-0,179435484 -0,195564516 4,303225806 2,012903226

0,356854839 -0,453629032 5,033548387 2,224516129

-0,066532258 -0,45766129 5,753225806 2,362903226

-0,118951613 -0,247983871 6,453870968 2,461612903

0,243951613 -0,336693548 7,193548387 2,506451613

-1,413306452 0,058467742 7,707096774 2,560645161

1,094758065 -0,102822581 8,395806452 2,598387097

0,010080645 -0,473790323 9,086129032 2,560322581

0,195564516 -0,195564516 9,807741935 2,490967742

0,909274194 0,276209677 10,67483871 2,465806452

Page 53: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

37

Tabela 8: Teste 08

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,219758065 0,070564516 0,03516129 0,011290323

-0,328629032 0,356854839 0,017741935 0,079677419

1,171370968 0,010080645 0,187741935 0,149677419

0,752016129 -0,360887097 0,478064516 0,161935484

-0,272177419 0,046370968 0,72483871 0,181612903

1,0625 -0,038306452 1,141612903 0,19516129

-0,485887097 0,122983871 1,480645161 0,228387097

0,671370968 0,195564516 1,927096774 0,292903226

0,836693548 -0,45766129 2,507419355 0,284193548

-1,058467742 0,20766129 2,918387097 0,308709677

0,885080645 -0,227822581 3,470967742 0,296774194

0,514112903 0,030241935 4,105806452 0,289677419

-0,078629032 0,227822581 4,728064516 0,319032258

0,739919355 0,574596774 5,468709677 0,440322581

-0,723790323 -0,16733871 6,093548387 0,53483871

0,675403226 0,002016129 6,826451613 0,629677419

0,788306452 -0,747983871 7,685483871 0,60483871

-0,094758065 1,227822581 8,529354839 0,776451613

0,401209677 -0,090725806 9,437419355 0,933548387

0,804435484 -0,776209677 10,47419355 0,966451613

Tabela 9: Teste 09

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y

(cm)

0,231854839 0,0625 0,037096774 0,01

-0,514112903 -0,127016129 -0,008064516 -0,00032258

0,610887097 0,45766129 0,044516129 0,062580645

-0,183467742 -0,618951613 0,067741935 0,026451613

-0,614919355 -0,143145161 -0,007419355 -0,03258065

0,800403226 0,401209677 0,045483871 -0,02741935

-0,808467742 -0,20766129 -0,030967742 -0,05548387

0,256048387 0,256048387 -0,066451613 -0,04258065

0,820564516 -0,264112903 0,029354839 -0,07193548

-0,328629032 0,272177419 0,072580645 -0,05774194

1,127016129 0,08266129 0,296129032 -0,03032258

-0,530241935 -0,215725806 0,43483871 -0,03741935

0,514112903 0,643145161 0,655806452 0,058387097

1,340725806 -0,723790323 1,091290323 0,038387097

-0,485887097 0,743951613 1,449032258 0,137419355

1,034274194 0,227822581 1,972258065 0,272903226

1,433467742 -0,231854839 2,72483871 0,371290323

0,094758065 -0,078629032 3,492580645 0,457096774

0,578629032 0,356854839 4,352903226 0,6

-1,352822581 0,5625 4,996774194 0,832903226

Page 54: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

38

Tabela 10: Teste 10

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,227822581 0,0625 0,036451613 0,01

0,038306452 0,546370968 0,079032258 0,107419355

0,308467742 -0,288306452 0,170967742 0,158709677

0,91733871 -0,493951613 0,409677419 0,130967742

-0,828629032 0,546370968 0,515806452 0,190645161

0,574596774 0,078629032 0,713870968 0,262903226

0,372983871 0,195564516 0,971612903 0,366451613

-0,058467742 -0,070564516 1,22 0,458709677

0,094758065 -0,836693548 1,483548387 0,417096774

-1,066532258 0,401209677 1,576451613 0,439677419

0,711693548 -0,328629032 1,783225806 0,409677419

0,590725806 -0,461693548 2,084516129 0,305806452

0,014112903 -0,175403226 2,388064516 0,173870968

0,20766129 0,594758065 2,72483871 0,137096774

-0,127016129 -0,0625 3,041290323 0,090322581

0,683467742 0,389112903 3,467096774 0,105806452

1,002016129 0,143145161 4,053225806 0,144193548

-0,300403226 0,497983871 4,591290323 0,262258065

1,272177419 0,151209677 5,332903226 0,404516129

0,514112903 0,122983871 6,156774194 0,566451613

Tabela 11: Teste 11

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,227822581 0,050403226 0,036451613 0,008064516

0,453629032 0,127016129 0,145483871 0,036451613

-0,651209677 0,195564516 0,150322581 0,096129032

0,131048387 -1,239919355 0,176129032 -0,04258065

0,760080645 0,114919355 0,323548387 -0,16290323

-0,780241935 -0,014112903 0,346129032 -0,28548387

0,969758065 0,171370968 0,523870968 -0,38064516

0,389112903 0,320564516 0,763870968 -0,42451613

-0,014112903 -0,510080645 1,001612903 -0,55

1,320564516 -0,296370968 1,450645161 -0,72290323

-0,590725806 0,0625 1,80516129 -0,88580645

0,159274194 -0,231854839 2,18516129 -1,08580645

-0,090725806 -0,627016129 2,550645161 -1,38612903

-1,110887097 -0,227822581 2,738387097 -1,72290323

0,461693548 0,566532258 3 -1,96903226

0,195564516 0,256048387 3,292903226 -2,17419355

-0,54233871 0,308467742 3,499032258 -2,33

1,110887097 -0,413306452 3,882903226 -2,55193548

-0,502016129 1,260080645 4,186451613 -2,57225806

0,719758065 -0,602822581 4,60516129 -2,68903226

Page 55: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

39

Tabela 12: Teste 12

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,227822581 0,046370968 0,036451613 0,007419355

0,647177419 0,256048387 0,176451613 0,055806452

0,639112903 -0,340725806 0,418709677 0,049677419

-0,356854839 -1,489919355 0,603870968 -0,19483871

0,566532258 -0,195564516 0,879677419 -0,47064516

-1,191532258 0,389112903 0,96483871 -0,68419355

0,614919355 -0,030241935 1,148387097 -0,90258065

0,739919355 0,453629032 1,450322581 -1,0483871

-0,639112903 -0,195564516 1,65 -1,22548387

0,683467742 -0,389112903 1,959032258 -1,46483871

-0,489919355 0,546370968 2,189677419 -1,61677419

0,211693548 -0,659274194 2,454193548 -1,87419355

0,356854839 -0,643145161 2,775806452 -2,23451613

-0,961693548 0,33266129 2,943548387 -2,5416129

0,768145161 0,135080645 3,234193548 -2,82709677

0,320564516 0,159274194 3,576129032 -3,08709677

-0,4375 0,272177419 3,848064516 -3,30354839

0,881048387 0,276209677 4,260967742 -3,47580645

-0,981854839 0,973790323 4,516774194 -3,49225806

0,288306452 -0,481854839 4,818709677 -3,58580645

Tabela 13: Teste 13

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y

(cm)

0,227822581 0,050403226 0,036451613 0,008064516

-0,058467742 0,320564516 0,063548387 0,067419355

0,804435484 -0,030241935 0,219354839 0,121935484

0,852822581 -0,086693548 0,511612903 0,162580645

-1,002016129 -0,514112903 0,643548387 0,120967742

0,852822581 0,377016129 0,911935484 0,139677419

-0,502016129 0,421370968 1,1 0,225806452

0,018145161 -0,199596774 1,290967742 0,28

1,058467742 -0,316532258 1,651290323 0,283548387

-0,046370968 0,534274194 2,004193548 0,372580645

0,735887097 0,336693548 2,47483871 0,515483871

-0,554435484 -0,227822581 2,856774194 0,621935484

-0,143145161 0,618951613 3,215806452 0,827419355

0,933467742 0,316532258 3,724193548 1,083548387

-0,320564516 -0,256048387 4,181290323 1,298709677

0,195564516 -0,606854839 4,669677419 1,416774194

0,485887097 -0,602822581 5,235806452 1,438387097

0,256048387 -0,768145161 5,842903226 1,337096774

0,735887097 -0,489919355 6,567741935 1,157419355

0,195564516 1,034274194 7,323870968 1,143225806

Page 56: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

40

Tabela 14: Teste 14

Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)

0,227822581 0,058467742 0,036451613 0,009354839

-0,227822581 -0,098790323 0,036451613 0,002903226

-0,622983871 -0,195564516 -0,063225806 -0,03483871

1,058467742 -0,203629032 0,006451613 -0,10516129

-0,9375 0,877016129 -0,073870968 -0,03516129

0,683467742 0,195564516 -0,04483871 0,066129032

0,485887097 0,195564516 0,061935484 0,198709677

-0,243951613 -0,372983871 0,129677419 0,271612903

0,288306452 0,054435484 0,243548387 0,353225806

0,502016129 0,308467742 0,437741935 0,484193548

0,788306452 -0,284274194 0,758064516 0,569677419

-0,006048387 -0,026209677 1,077419355 0,650967742

0,372983871 -0,159274194 1,456451613 0,706774194

0,159274194 -0,453629032 1,860967742 0,69

-0,393145161 -1,1875 2,202580645 0,483225806

0,405241935 -0,356854839 2,609032258 0,219354839

-0,320564516 -0,469758065 2,964193548 -0,11967742

0,098790323 0,102822581 3,33516129 -0,44225806

-0,118951613 0,514112903 3,687096774 -0,68258065

0,788306452 0,675403226 4,16516129 -0,81483871

Page 57: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

41

ANEXO B

Neste anexo encontra-se o artigo desenvolvido nas normas da revista Da Vinci, que

tem sua publicação na Universidade Positivo.

Page 58: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

42

Page 59: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

43

Controle de Trajetórias Embarcado Antonio Joaquim Ferreira Soares Neto – [email protected] Egresso do Curso de Engenharia da Computação da Universidade Positivo Valfredo Pilla Júnior – [email protected] Professor do Curso de Engenharia da Computação da Universidade Endereço para contato: Universidade Positivo - UP, Curso de Engenharia da Computação Rua Prof. Pedro Viriato Parigot de Souza, 5300 – Campo Comprido 81280-330, Curitiba – PR Tel.: (+55) 41 3317-3270 Fax:(+55) 41 3317-3270 Resumo:

Um sistema de orientação é importante para um sistema móvel se localizar sem necessitar de referências externas, como o sistema de GPS (Global Positioning System) que em áreas fechadas ou em condições desfavoráveis do tempo não tem uma boa visibilidade dos satélites. Este trabalho se dedica a um controle de trajetórias embarcado que controla os movimentos do veículo de acordo com os parâmetros de entrada em um ambiente previamente mapeado. As trajetórias estabelecem uma conexão através de uma curva interpolada entre dois pontos, podendo esta curva ser uma reta ou um arco, artifício necessário para contornar obstáculos conhecidos. A partir das coordenadas de chegada escolhidas pelo usuário em uma tela de configuração, os dados são enviados através de uma comunicação serial para o microcontrolador. Durante o percurso do veículo, o sistema de posicionamento inercial estima as coordenadas atuais do veículo para se ter um melhor controle e para a validação do resultado obtido. Palavras-Chave: Acelerômetro, Interpolação de Curvas, Posicionamento Inercial, Cálculo de Trajetória, Veículo Rádio-Controlado.

Abstract:

An orientation system is important to a mobile system for locating himself without the requirement of external references, as the GPS (Global Positioning System) does not have good visibility of satellites in enclosed areas or in adverse weather conditions. This paper focus on an embedded trajectory controller that performs the vehicle's movements according to input parameters in a previously mapped environment. The trajectories establish a connection through interpolated curve between two points, this curve may be a straight line or a bowed curve, a subterfuge necessary to circumvent known obstacles. From destination coordinates chosen by the user in a configuration screen, the data is sent via serial communication to the microcontroller. During the course of the vehicle, the inertial positioning steering system the current coordinates of the vehicle to have better control and to validate the outcome. Keywords: Accelerometer, Interpolation Curves, Inertial Positioning, Trajectory Calculation, Radio-Controlled Vehicle. 1 INTRODUÇÃO

Um sistema de orientação é importante para um sistema móvel se localizar sem

necessitar de referências externas, podendo essas referências externas ser um comando enviado por uma pessoa ou um computador. Este sistema é importante em diversas áreas, como a área industrial (FERREIRA, 2004), busca de sobreviventes em acidentes (WOLF et al, 2003), e atualmente tem-se uma ampla pesquisa para controle autônomo de veículos pessoais (OSÓRIO et al, 2001).

Este trabalho trata-se de um controle de trajetórias embarcado. O controle de trajetórias é usado para direcionar o movimento de um veículo de acordo com os parâmetros de entrada em um ambiente previamente mapeado. Definida uma trajetória (reta ou curva) determinam-se as ações de movimentação do veículo. As trajetórias estabelecem uma

Page 60: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

44

conexão através de curva interpolada entre dois pontos do mapa. A curva pode ser uma reta, um arco ou composição de arcos, artifício necessário para contornar obstáculos conhecidos. A partir das coordenadas de partida e chegada e da seleção da curva (ou curvas) um algoritmo de interpolação determina a trajetória da curva (ou curvas). O cálculo de interpolação que é uma forma de representar dados em uma função, para a aproximação da função analítica que não se pode ter previamente (BARROSSO et al, 1987) é a melhor escolha, pois pode-se gerar curvas diferentes para cada tipo de situação.

Durante o percurso do veículo o sistema de posicionamento inercial (CAMPOS et al, 2003) envia as coordenadas atuais para um melhor controle do veículo assim como para validação do resultado obtido. O Controlador é embarcado em microcomputador dedicado com microcontrolador ARM, que tem como características principais o baixo consumo de energia e o alto poder de processamento (SOUSA, 2006), onde a trajetória de um veículo rádio-controlado é realizada segundo a trajetória definida pela equação de interpolação.

Neste contexto, o presente trabalho apresenta um sistema composto de 2 duas partes, a primeira um programa em um computador pessoal, que tem como finalidade a entrada das coordenadas finais, os parâmetros da curva a ser realizada pelo veiculo e o desenho do gráfico referente ao movimento realizado, a segunda parte consiste em um sistema embarcado capaz de se comunicar com o computador pessoal para atualizar a posição do veiculo, nele consta o controle do veiculo e é responsável pelo posicionamento inercial que será explicado em detalhes, assim como o algoritmo de interpolação de curvas, responsável pelo calculo da curva a ser realizado pelo veiculo. A Figura 1 mostra a arquitetura geral do sistema, que é explicado com maiores detalhes no tópico 2.

2 ARQUITETURA

O sistema foi dividido em 2 blocos, o sistema do usuário onde existe a intervenção de uma pessoa para configurações e acompanhamento, e o sistema embarcado, onde algoritmos e sensores fazem todo o controle. 2.1 CONTROLADOR

O controlador é responsável pelo controle de todo o sistema embarcado, ele faz a leitura e conversões necessária do posicionamento inercial (explicado no subtopico 2.2), também realiza o calculo de interpolação de curva (explicado no subtopico 2.3), faz tratamento e envio de mensagens através do modulo transceptor wireless, e por fim faz o controle dos motores do veiculo se baseando nos cálculos executado e dados recebidos.

O controlador utilizado é um ARM7, mais especificamente o componente LPC2148 (PHILIPS, 2005) que está em uma placa nomeada eLPC64 produzida pela eSystech, esta placa é acoplada no kit da eSystech chamado ELPC2122 (ESYSTECH, 2008) para fins de debug, conexões com o computador e outras funções. 2.2 POSICIONAMENTO INERCIAL

O posicionamento inercial é parte fundamental do projeto, pois a partir dele é possível determinar a posição em que o veiculo se encontra em determinado instante de tempo, permitindo assim com que o sistema possa fazer um controle mais exato sobre o veiculo fazendo com que a trajetória realizada seja a mais próxima da desejada.

O acelerômetro é o dispositivo eletrônico por trás do posicionamento inercial, pois através dele é possível mensurar a aceleração nos eixos x, y e z. O dispositivo oferece como saída uma leitura na unidade de medida gravidade (G), podendo ser essa saída positiva ou negativa, por esse motivo foi necessário a criação de um algoritmo de conversão de medida para transformar a gravidade lida em posição instantânea do veiculo, essa conversão é mostrada adiante e está dividida em 5 etapas.

1ª Etapa – Cálculo de transformação da leitura do AD em tensão VoltsRx = AdcRx * VRef / 1023

(1) AdcRx – Corresponde a leitura feita pelo AD em 10 bits. VRef – Tensão de referencia do AD, no caso é utilizada uma tensão de 3,5V.

Page 61: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

45

1023 – Corresponde a resolução do AD, que é 10 bits, logo 2^(10 -1.) VoltsRx – Terá o valor em Volts da leitura feita pelo AD.

2ª Etapa – Cálculo da Variação de Tensão Esta etapa calcula a diferença (offset) da tensão no equilíbrio, o ideal seria 0, mas

existe uma diferença, e para determina-la é realizado este cálculo. DeltaVoltsRx = VoltsRx - (VRef/2.0)

(2) VoltsRx – Corresponde ao valor lido pelo AD em Volts. VRef – Tensão de referência do AD (3,5V). 2,0 – Divisor, ele tem como valor padrão 2.0, pois o acelerômetro na posição de

equilíbrio tenderia a 0, logo ele varia de +1,5G até -1,5G, no caso aplicado, essa variação é 0 até Vref.

DeltaVoltRx – terá o valor transformado, onde o +1,5G corresponde a 3,5V e o -1,5G corresponde a 0V.

3ª Etapa – Aceleração Esta etapa faz o cálculo da aceleração instantânea do acelerômetro. Rx = (DeltaVoltsRx / Sensitivity)

(3) DeltaVoltsRx – É o valor lido do acelerômetro na escala de 0 a Vref. Sen sitivity – É a sensibilidade com que o acelerômetro foi configurado, esta

configuração é de 800mV/G, ou seja a cada G (aceleração) em um eixo, é aumentado ou diminuído 800mV da saída do acelerômetro.

Rx – Terá o valor da aceleração em m/s ao final desse cálculo.

4ª Etapa – Cálculo da Velocidade Esta etapa realiza uma integral a partir da aceleração, obtendo assim o valor da

velocidade naquele instante de tempo. vel_x = vel_x + 0.4*Rx

(4) Rx – é o valor da aceleração instantânea, medida naquele instante de tempo. 0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms Vel_x – é a soma de todas as velocidades desde o tempo inicial (0).

5ª Etapa – Cálculo da Posição Esta etapa realiza uma integral a partir da velocidade, obtendo assim o valor da

posição naquele instante de tempo. pos_x = pos_x + 0.4*vel_x

(5) vel_x – é o valor da velocidade que foi acumulada até o instante de tempo atual. 0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms. pos_x – é a soma de todas as posições desde o tempo inicial (0).

2.3 INTERPOLAÇÃO DE CURVA

O cálculo da Interpolação é feito a partir de coordenadas x e y inseridas no programa pelo usuário, o resultado desde calculo corresponde a curva desejada, que o veículo deve replicar na forma real. Um y positivo indica que a curva será para a direita, e um y negativo implica em uma curva para a esquerda. O valor de x não pode ser negativo, pois o veículo deve andar somente para frente. K1 e k2 são duas constantes que implicam na curvatura do trajeto feito pelo veículo. A seguir são mostrados todos os cálculos efetuados para a interpolação de forma mais detalhada.

A primeira coisa a ser fazer é encontrar um ponto intermediário, este ponto indica o tamanho da curvatura e onde esta curva será mais acentuada. Para isso foi necessário a inserção de 2 parâmetros, k1 e k2.

O ponto intermediário é calculado a partir da relação entre a distância dos pontos iniciais e finais, e de k1 e k2. A Figura 2 mostra de forma gráfica este problema.

Page 62: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

46

O ponto a, aqui será tratado como ponto inicial, que nesta implementação será sempre considerado com coordenadas 0,0. O ponto b é o nosso ponto final, onde o veículo chega ao final do processamento. O ponto f é o nosso ponto intermediário, que deve ser calculado a partir das relações de k1 e k2.

O primeiro cálculo efetuado é a distância entre os pontos iniciais e finais (a e b). Para isso foi utilizada a seguinte equação:

D = √ ((bx-ax)2 + (by-ay)

2)

Onde bx é o valor de x do ponto b, ax o valor de x do ponto a, by o valor de y do ponto b e ay o valor de y do ponto a.

Encontrado a distância, pode-se encontrar os valores de d1 e d2 mostrados na Figura 3, segundo esta equação:

d1 = k1*D d2 = k2*D Agora o valor de δ deve ser encontrado, para assim, encontrarmos d3. Seguindo estas

equações: δ = arc tg (by / bx) d3 = √ ((d1-d2)

2)

O próximo passo é encontrar α e θ para se calcular o ponto intermediário.Para isso foi utilizado estas equações:

θ = arc tg (d2/d1) α = 90 – δ – θ, para curvas a direita e α = 90 – δ + θ, para curvas a esquerda. Com isto, o valor de fx e fy pode ser encontrado por meio das seguintes equações: fy = cos α * d3 fx = sem α * d3 A Figura 3 mostra as relações trigonométricas utilizadas para encontrar o ponto

intermediário. Com os valores dos pontos iniciais, finais e intermediários (a, b e f respectivamente),

podemos encontrar a equação de Interpolação, partindo da equação de Lagrange, onde: y0 = a0 + a1x0 + a2x0

2 + ... + anxn

2

Substituindo pelos pontos encontrados temos: 1º ay = a0 + a1ax + a2ax

2

2º by = a0 + a1bx + a2bx2

3º fy = a0 + a1fx + a2fx2

Resolvendo a 1ª equação, encontra-se a0 com valor 0, isso faz com que as outras equações não tenham o termo a0, tendo assim 2 equações e duas incógnitas, podendo resolver o sistema pelo método de substituição, obtendo como resultado as seguintes equações:

a1 = (fx*bx2 – by*fy

2) / (fx*bx

2 – fx

2*bx)

a2 = (by – a1*bx) / bx2

2.4 DRIVER DE POTÊNCIA E MOTORES

O driver de potência é necessário para o acionamento e controle dos motores de direção e avanço do veículo, pois a corrente consumida pelos motores, que é de 400mA, é superior a corrente que o controlador pode fornecer nos pinos de I/O. Assim, foi utilizada uma ponte-H, que tem a direção controlada pelos pinos de I/O do controlador, cuja finalidade é acionar uma fonte de alimentação adicional, específica para os motores, fazendo com que o consumo dessa fonte adicional não influencie o funcionamento dos outros módulos envolvidos, tais como controlador, transreceptor wireless e o sistema de posicionamento inercial, garantindo uma maior autonomia ao sistema. 2.5 TRANSCEPTOR WIRELESS

O módulo transreceptor wireless é responsável pela comunicação entre o controlador e o computador pessoal. A tecnologia de rádiofrequência utilizada foi o ZigBee, ZigBee é uma associação de empresas que trabalham em conjunto para permitir a troca de mensagens sem fio confiáveis, eficazes, de baixo consumo e que possam ser utilizados em monitoramento e controle de produtos baseado em uma forma de padrão aberto e de acesso global (ZIGBEE

Page 63: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

47

ALLIANCE, 2010), a ZigBee Alliance determina o padrão a ser utilizado na tecnologia ZigBee, e as fabricantes montam os chips baseados nesse padrão. O componente utilizado é o fabricado pela empresa MaxStream, o XBee Pro (MAXSTREAM, 2006) tem como principais características uma comunicação em área urbana de até 100m, e em campo aberto de até 1500m, um consumo de transmissão de até 235mA e de recepção até 55mA, e em modo de baixo consumo de apenas 10µA. A comunicação é dividida em duas: ZigBee-Controlador e ZigBee-Central.

Ambos os ZigBee, assim como a serial do controlador, são configurados com uma taxa de transferência de 38400b/s, 8bits, nenhum bit de paridade, e 1 bit de parada. O ZigBee-Central é conectado ao computador através da USB, isto é possível graças a um adaptador Serial-USB (RS232-USB) que foi adquirido junto ao XBee Pro. 2.6 COMPUTADOR PESSOAL

O computador pessoal, denominado de Central de Comando, possui um software que é composto por uma tela de configuração, e uma outra parte importante desde software é o cálculo de interpolação de curva, que já foi explicado no tópico 2.3.

A interface homem-maquina é feita exclusivamente no computador pessoal, pois aqui existe uma interação entre uma pessoa e o computador, que está transmitindo mensagens com o controlador, para isso foi desenvolvida uma interface onde é inserido os dados iniciais, tais como xFinal, yFinal, k1 e k2, e o comando de Calcular e Iniciar trajetória.

Existe também outras configurações, como a configuração da interface de comunicação serial. E foi implementado uma função onde o usuário pode criar uma trajetória fechada, inserindo as coordenadas desejadas e apertando o botão “Adicionar”, o software entende como sendo uma trajetória fechada e acumula os dados inseridos em um vetor e faz o envio das coordenadas uma a uma, esperando a conclusão de cada uma e então avisando ao usuário que a trajetória foi efetuada com sucesso. Outro botão “Reta” foi adicionado, permitindo ao usuário fazer com que o veículo se locomova em uma reta por um intervalo de tempo pré-tederminado, esse intervalo é de 200ms, ou seja, o veículo percorre uma reta por 200ms. A Figura 4 mostra a interface utilizada. 4 RESULTADOS

O sistema foi capaz de realizar diferentes formas de curvas de forma satisfatória, mas

um problema encontrado que não permitiu uma execução próxima das curvas desejadas foi a dificuldade em se ler os valores do posicionamento inercial sem os ruídos gerados pela movimentação da direção do veiculo, o offset (leitura diferente de zero) intrínseco a fabricação do componente, assim como a oscilação do terreno, pois mesmo que seja uma reta planificada haverá leituras diferente de zero quando o veiculo está em repouso, isso causa um erro na leitura, que por sua vez influencia no controle do veiculo, fazendo assim com que a trajetória realizada e mostrada pelas posições lidas sejam diferentes do desejado.

Um teste realizado para validar o sistema. Foi realizado a mesma trajetória 14 vezes, a trajetória esperada. Fazendo uma média dos valores lidos e desenhando um gráfico utilizando os valores da trajetória esperada e da trajetória realizada obteve-se o gráfico de curva da Figura 5.

Os parâmetros de entrada foram: xFinal = 2; yFinal = 2; k1 = 0,5; k2 = 0,25 Na Tabela 1 tem-se os valores tratados pelo algoritmo de posicionamento inercial

resultantes do movimento realizado pelo veiculo. Como pode ser visto na Figura 5, a trajetória em si é parecida com a trajetória

desejada, mas ao comparar a escala é possível ver que no eixo x o limite deveria ser 2 mas na trajetória realizada esse valor é de aproximadamente 6, já o eixo y que deveria ser 2 é de aproximadamente de 0,2. Esse erro gerado é em função do problema encontrado no sistema de posicionamento inercial.

5 CONCLUSÃO

Os resultados obtidos durante os testes foram satisfatórios, pois o sistema se mostrou capaz de executar as curvas estipuladas sem maiores problemas, o algoritmo de controle do veículo se mostrou bastante eficiente, mas o grande problema encontrado foi a leitura do

Page 64: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

48

sistema de posicionamento inercial, pois este era muito influenciado pela movimentação do veículo ocasionada pela movimentação do motor de direção, pois este tem apenas 3 posições, reto, totalmente para a direita e totalmente para a esquerda, criando assim uma grande vibração na hora do controle para realizar as curvas.

O sistema também se mostrou bastante flexível, pois após a implementação proposta, foi possível criar uma nova implementação onde é possível criar uma trajetória composta de diversas curvas e então enviar ao veículo, podendo assim fazer uma trajetória fechada, que para o usuário parece ser uma forma, sem a necessidade de fazer diversas realimentações.

Melhorias podem ser realizadas no sistema, tais como criar filtros para o sistema de posicionamento inercial, para retirar o offset e diminuir os erros de leitura realizados pelas vibrações do veículo, mudar o veículo em si, trocando para um com mecânica mais apropriada podendo conter molas ou outros sistemas mecânicos que diminuam as vibrações de movimentação e terreno. 6 REFERENCIAS

BARROSO, L. C.; BARROSO, M. M. de A.; FILHO, F. F. C.; CARVALHO, M. L. B. de; MAIA, M. L. Cálculo Numérico: com aplicações. 2.ed. São Paulo: Harbra, 1987.

CAMPOS, Alexandre; SILVA, André L. da. Desenvolvimento de um sistema de navegação inercial de baixo custo para uso no registro de trajetórias planas. 2003. XVIII Congresso Regional De Iniciação Científica e Tecnológica (Engenharia Mecânica) – Universidade Federal de Santa Maria.

ESYSTECH, eLPC-Main 2122: ARM Evaluation Board for eLPC SOM. Manual do Usuário. Rev. 08/2008.

FERREIRA, Alysson Sarmento. Protótipo de Veículo Autônomo – PVA. 2004. Pós-Graduação em Engenharia Eletrônica e Computação (PG/EEC) - Instituto Tecnológico de Aeronáutica, São José dos Campos.

FREESCALE SEMICONDUTOR, MMA7331L. Datasheet. Rev 0, 04/2008.

MAXSTREAM, XBee/XBee-PRO OEM RF Modules. Datasheet. Rev. 13/10/2006.

OSÓRIO, Fernando; HEINEN, Falei; FORTES, Luciane. Controle Inteligente de Veículos Autônomos: Automatização do Processo de Estacionamento de Carros. 2001. Mestrado em Computação Aplicada - Universidade do Vale do Rio dos Sinos, São Leopoldo, RS.

PHILIPS SEMICONDUCTORS, LPC2210/2220. Datasheet. Rev. 02,30/05/2005.

SOUSA, Daniel Rodrigues de. Microcontroladores ARM7 (Philips, Família LPC213X): o poder dos 32 bits. 1.ed. São Paulo: Editora Érica, 2006.

WOLF, A; BROWN, H. B.; CASCIOLA, R.; COSTA, A. ; SCHWERIN, M.; SHAMAS, E.; CHOSET, H. A Mobile Hyper Redundant Mechanism for Search and Rescue Tasks. 2003. Department of Mechanical Engineering - Carnegie Mellon University, Pittsburgh, USA.

ZIGBEE ALLIANCE, Misão, Disponivel em < http://www.zigbee.org/About/OurMission.aspx>. Acesso em: ago. 2010.

Page 65: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

49

Figura 1: Arquitetura do sistema

Figura 2: Encontrar ponto F

Figura 3: Relação Trigonométrica

Page 66: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

50

Figura 4: Interface Humano-Computador

Figura 5: Trajetória Calculada x Trajetória Realizada

0

0,5

1

1,5

2

2,5

3

0 1 2 3 4 5 6 7

y (cm)

x (cm)

Curva Calculada

Curva Realizada

Page 67: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

51

TABELA 1: Tabela Valores Lidos Posicionamento Inercial

x (cm) y (cm)

0 0

0,036 0,009

0,089 0,042

0,167 0,077

0,284 0,070

0,395 0,074

0,560 0,107

0,740 0,156

0,961 0,221

1,227 0,266

1,493 0,328

1,805 0,361

2,154 0,362

2,528 0,360

2,931 0,367

3,341 0,358

3,801 0,334

4,314 0,307

4,863 0,265

5,439 0,245

6,079 0,227

Page 68: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

52

Page 69: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

53

ANEXO C

Neste anexo encontra-se o manual técnico do sistema, mostrando como utilizar o

sistema, configurar e resolver eventuais problemas encontrados.

Page 70: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

54

Page 71: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

55

CONTROLE DE TRAJETÓRIAS EMBARCADO

Manual Técnico

Antonio Joaquim Ferreira Soares Neto

UNIVERSIDADE POSITIVO/NCET

Curitiba

2010

Page 72: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

56

Page 73: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

57

SUMÁRIO

1 - INTRODUÇÃO .................................................................................................................. 59

2- REQUISITOS ...................................................................................................................... 61

2.1 – REQUISITOS DE HARDWARE ................................................................................... 61

2.2 – REQUISITOS DE SOFTWARE .................................................................................... 63

3 – CONFIGURAÇÕES DO SISTEMA ................................................................................. 65

3.1 – CONFIGURAÇÕES DE HARDWARE ........................................................................ 65

3.2 – CONFIGURAÇÃO DE SOFTWARE ............................................................................ 66

3.2.1 – CONFIGURANDO A COMUNICAÇÃO DO TRANSRECEPTOR ......................... 66

3.2.2 – CONFIGURAOS DADOS PARA CONTROLE E REALIZANDO A

TRAJETÓRIA ............................................................................................................................... 68

4 – RESOLUÇÃO DE PROBLEMAS .................................................................................... 71

4.1 – RESOLUÇÃO DE PROBLEMAS DE HARDWARE ................................................... 71

4.2 – RESOLUÇÃO DE PROBLEMAS DE SOFTWARE .................................................... 71

Page 74: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

58

Page 75: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

59

1 - INTRODUÇÃO

Este manual tem por objetivo mostrar os requisitos necessários, as configurações

dos componentes do sistema e como realizar uma trajetória utilizando o sistema.

Entende-se que o projeto é o controle de trajetória embarcado, desta forma não há

usuário final do projeto, podendo ser utilizado para diversos fins, assim como para ser

utilizado como base para novas implementações. As informações deste manual devem

ser utilizadas por um conhecedor de linguagem C++ e C, assim como da arquitetura

ARM.

Page 76: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

60

Page 77: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

61

2- REQUISITOS

São necessários alguns requisitos e configurações do sistema para que todos os

módulos do projeto possam ser configurados e funcionem adequadamente. Estes

requisitos de software e hardware estão descritos nas seções abaixo.

2.1 – Requisitos de hardware

Para o funcionamento do projeto é necessário da placa adaptadora ARM da empresa

EsysTech, o modelo utilizado é o ELPC64, mostrada na Figura 01, que deve conter as

seguintes características:

Microprocessador ARM NXP LPC2148

Header de 60 pinos para acesso ao ARM

Alimentação externa de 5 V +/-1V

Cristal de 16MHz para o processador

Cristal para o RTC de 32,768kHz

Figura 01: Placa ELPC64

Page 78: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

62

É necessário também a placa “3 Axis Acceleration Sensor Board” fabricada pela

Sure Electronics, mostrada na Figura 02, que contém o acelerômetro utilizado para a

aquisição da posição do veículo e deve conter as seguintes características:

Acelerômetro MMA7260Q da empresa Freescale

Alimentação externa de 5V até um máximo de 9V, ou alimentada diretamente a

3,3V

Figura 02: Placa “3 Axis Acceleration Sensor Board”

E para a comunicação é necessário o transreceptor XBee Pro da empresa

MaxStream, ilustrada na Figura 03. Para a utilização na central de comandos é preciso

ter o adaptador USB fabricado pela RogerCom, ilustrada na Figura 04.

Figura 03: XBee Pro

Figura 04: Adaptador USB

Para funcionamento adequado do software é necessário um computador com a

configuração mínima abaixo:

Processador AMD K-7 ou Intel Pentium III com pelo menos 1000MHz;

512 MB de memória RAM;

10MB de memória livre em disco;

Page 79: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

63

Leitor de CD/DVD-ROM de 4x ou superior;

Porta USB;

Sistema Operacional Windows XP ou superior.

2.2 – Requisitos de software

Para o funcionamento do sistema é necessário que o usuário execute o programa

Central de Comandos, e insira a USB, assim como efetue as configurações que são

explicadas passo a passo no tópico 3.2.1.

Page 80: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

64

Page 81: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

65

3 – CONFIGURAÇÕES DO SISTEMA

As configurações abaixo dos componentes do sistema são necessárias para que

possam ser realizados os procedimento descritos no capítulo quatro.

3.1 – Configurações de Hardware

É necessário que o sistema embarcado seja alimentando pelas fontes externas:

Bateria de 9V localizada na parte frontal do veículo;

3 pilhas de 1,5V localizadas na parte inferior do veículo;

Deve-se também ligar as respectivas chaves das alimentações, garantindo assim que

o sistema esteja alimentado corretamente. As figuras 05 e 06 ilustram a localização das

baterias e chaves.

Figura 05: Localização da bateria de 9V e chave

Page 82: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

66

Figura 06: Localização das pilhas de 1,5V e chave

3.2 – Configuração de software

Após as configurações de hardware terem sido realizadas, é necessário garantir que

o software esteja configurado corretamente para enviar e receber dados do sistema

embarcado, para isso é necessário configurar os dados da comunicação. Essa

configuração e outras são mostradas a seguir, assim como os passos para efetuar um

comando para o veículo se movimentar.

3.2.1 – Configurando a comunicação do transreceptor

Depois de conectar o transreceptor a USB do computador utilizando a placa

adaptadora da RogerCom, em seguida abra o gerenciador de dispositivo, uma maneira

de fazer isso é ir no menu iniciar, depois executar e digitar: “devmgmt.msc”, de forma

que apareça a imagem ilustrada na Figura 07.

Page 83: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

67

Figura 07: Gerenciador de Dispositivos

Em seguida vá na aba “Portas (COM e LPT)” ver qual porta foi reconhecida pelo

seu sistema operacional, como mostrado na Figura 08.

Figura 08: Porta Reconhecida pelo Sistema Operacional

Conforme a Figura 08, a porta reconhecida neste caso foi a COM5.

Page 84: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

68

Em seguida execute o programa “Central de Comando” e clique no botão

“Configurar Serial” e configure da seguinte forma:

Port: A porta que o sistema operacional reconheceu como sendo o transreceptor,

no caso COM5;

Baud rate: 38400, pois é a configuração utilizada pelo sistema embarcado;

Data bits: 8;

Stop bits: 1;

Parity: None;

Flow Control: None;

A Figura 09 ilustra essa configuração no programa, em seguida clique em OK para

salvar as configurações.

Figura 09: Configuração transreceptor

Verifique se a luz ao lado de “Status Serial” na tela do programa está “acessa”, caso

não esteja clique em “Abrir Serial”, se já estiver acessa você irá encontrar um botão

chamado “Fechar Serial”.

As configurações de comunicação já estão feitas, agora deve-se inserir os dados para

o controle, que é explicado no tópico seguinte.

3.2.2 – Configurando os dados para controle e realizando a trajetória

Page 85: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

69

Realizada as configurações de comunicação, deve-se então efetuar as entradas para o

controle do veículo. Para isso é necessário preencher 4 campos que sçao descritos a

seguir:

Posição Final X: é a posição de destino no eixo x, o valor deve ser sempre

positivo (maior ou igual a 0);

Posição Final Y: é a posição de destino no eixo y, define também se a curva será

para a direita ou esquerda. Para curvas a direita o valor deve ser positivo e para

curvas a esquerda o valor deve ser negativo.

k1: é um dos coeficientes da curva, o valor deve estar entre o intervalo de 0,5 a

0,9, valores fora desse intervalo poderão gerar erro no sistema.

k2: é o outro coeficiente da curva, o valor deve estar entre o intervalo de 0,1 e

0,3, valores fora desse intervalo poderão gerar erro no sistema.

Preenchidos estes campos, clique no botão calcular, assim o programa irar gerar

um gráfico a esquerda, nomeado de “Trajetória Calculada”. A Figura 10 ilustra uma

configuração para o controle de trajetória.

Figura 10: Configuração dos dados e curva

Em seguida é necessário enviar estes dados ao sistema embarcado, para isso

basta clicar no botão “Enviar”, se a mensagem for recebida corretamente, irá

aparecer uma mensagem confirmando o envio, como mostrado na Figura 11.

Page 86: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

70

Figura 11: Envio dos dados e confirmação do recebimento

Após o envio correto para o sistema embarcado, o botão “Iniciar” será

habilitado, permitindo assim o inicio da trajetória pelo veículo. Durante a execução

da trajetória o veículo atualizará o gráfico “Trajetória Real” com as suas posições,

permitindo assim a comparação entre a trajetória desejada e a trajetória permitida

em tempo real. Após o término da execução, o sistema alerta com uma nova janela

mostrando que o controle foi realizado com sucesso, conforme mostrado na Figura

12.

Figura 12: Controle Concluído

Feito essas operações sobre o programa, é possível realizar trajetórias de formas

independentes e receber o resultado. Após cada execução, o programa retorna para a

tela inicial, e deve ser feita todos os passos.

Page 87: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

71

4 – RESOLVENDO PROBLEMAS

Este capítulo trata de exemplificar e mostrar como resolver eventuais problemas

tanto de software quanto de hardware.

4.2 – Resolvendo problemas de software

Os possíveis problemas no software poderão ser:

Não instalação ou má instalação do adaptador USB;

Configuração errada da comunicação do transreceptor;

Para solucionar o problema do adaptador USB (caso não seja reconhecido

corretamente pelo Sistema Operacional), é a instalação manual do adaptador, realizada

executando o driver correto para o sistema operacional utilizado, para isso entre na

pasta: “Programas/Diver USB/Seu Sistema”. Após instalado o adaptador deve ser

reconhecido corretamente.

Para solucionar o problema da configuração errada da comunicação do transreceptor

efetue os passos mostrados no tópico 3.2.1 (Configurando a comunicação do

transreceptor).

4.2 – Resolvendo problemas de hardware

Os possíveis problemas o hardware poderão ser:

Falta da alimentação do sistema;

Falta da alimentação dos motores;

Page 88: Controle de Trajetórias Embarcado - UP...O sistema embarcado é responsável por receber as coordenadas do ponto final, realizar o cálculo de interpolação, fazer o controle do

72

Para identificar e solucionar o problema da falta de alimentação do sistema, basta

verificar se o led na placa ELP64 está acesso, caso não esteja, a bateria pode estar

desconectada ou descarregada, ou a chave de alimentação do sistema está desligada.

Para identificar e solucionar o problema da falta de alimentação dos motores, deve-

se verificar se a chave localizada na parte inferior do veículo está na posição “ON”, caso

esteja nesta posição, envie o comando de iniciar pelo programa “Central de Comando”,

se o veículo não se movimentar, a carga das pilhas não é o suficiente para os motores e

deve ser trocada ou recarregada.