adriana isabel martins de amorimintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50075.pdf · adriana...

Post on 09-Nov-2018

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Adriana Isabel Martins de Amorim

Sistema de navegação inercialaplicável a múltiplas plataformas móveis

Adria

na Is

abel

Mar

tins

de A

mor

im

Outubro de 2012UMin

ho |

201

2Si

stem

a de

nav

egaç

ão in

erci

alap

licáv

el a

múl

tipla

s pl

ataf

orm

as m

óvei

s

Universidade do MinhoEscola de Engenharia

Outubro de 2012

Tese de MestradoCiclo de Estudos Integrados Conducentes ao Grau de Mestre emEngenharia Eletrónica Industrial e Computadores

Trabalho efetuado sob a orientação doProfessor Doutor Agostinho Gil Teixeira Lopes

Adriana Isabel Martins de Amorim

Sistema de navegação inercialaplicável a múltiplas plataformas móveis

Universidade do MinhoEscola de Engenharia

iii

Agradecimentos

Em primeiro lugar, gostaria de agradecer ao meu orientador, Professor Doutor Agostinho Gil Teixeira

Lopes, pelo seu incentivo na realização deste trabalho, bem como pela disponibilidade e auxílio

prestado.

Um grande obrigado, ao meu amigo Jorge Aires que se mostrou sempre prestável, tendo dado um

especial auxílio nas formatações desta tese.

Gostaria também de agradecer aos meus pais, Joaquim e Ana Amorim, pela oportunidade que me

deram, bem como pela paciência e compreensão demonstrada durante o decorrer do curso. Um

agradecimento especial à minha avó que, embora não compreenda o meu trabalho, sempre me

motivou.

Um especial obrigado ao meu namorado Filipe Salgado, pela sua atenção e ajuda prestada.

Adriana Amorim

iv

Resumo

Sistema de navegação inercial aplicável a múltiplas plataformas móveis

Keywords: Navegação Sensorial, fusão sensorial, INS, AHRS, IMU, MEMES, quaternion, mbed, Qt.

Este trabalho tem com fundamento a implementação de sistemas IMU (Inertial Measurement Unit),

AHRS (Attitude and Heading Reference system) e INS (Inertial Navigation System) com recurso

apenas a sensores inerciais de baixo custo com vista à sua integração em diferentes aplicações,

tais como robots autónomos indoor, que requeiram sistemas de orientação no espaço e que não

possam, ou não seja desejável, recorrer a tecnologias de localização absoluta (ex., GPS). A

implementação do trabalho tem por base o método de quaternions, e um algoritmo de fusão

sensorial para eliminação de drift e correção de erros.

A determinação da orientação e reprodução da mesma foi conseguido com sucesso, verificando-se

o correto funcionamento do mecanismo de eliminação de drift. O algoritmo de fusão sensorial

utilizado foi estendido com métodos de cálculo da aceleração dinâmica a que o referencial dos

sensores está sujeito e determinação da sua velocidade linear e deslocamento. No entanto este

método revelou-se ineficaz para a determinação da posição e velocidade linear, devido à

acumulação sucessiva de erros. O trabalho revela que tal como para a determinação da orientação

baseada em integração, também a determinação da posição requer um mecanismo complementar

de eliminação de erros.

v

Abstract

Inertial navigation system applicable to multiple mobile platforms

The scope of this work is the implementation of a IMU, AHRS and a INS, recurring only to low cost

inertial sensors, foreseeing its integration in different applications, such as autonomous indoor

robots, that require spatial orientation systems and do not recur to absolute localization

technologies (e.g., GPS). The work is built on quaternions and a sensor fusion algorithm to

compensate drift and correct errors.

The determination and reproducing of orientation was successful achieved, verifying the proper

operation of drift compensation mechanism. The sensor fusion algorithms used were extended with

a dynamic acceleration estimation method to determine the linear velocity and displacement which

affect the sensors. However, this method has proved inefficient in dealing with displacement and

velocity estimation due to successive error accumulation. The works reveals that to precisely

determine orientation based in integration, and similarly to the attitude and heading sensor fusion

methods, also position estimation requires a complementary mechanism of error elimination.

vi

Índice

CAPÍTULO 1 INTRODUÇÃO ............................................................................................... 1

1.1 Enquadramento .............................................................................................................. 1

1.2 Objetivos ......................................................................................................................... 4

1.3 Organização da dissertação ............................................................................................ 4

CAPÍTULO 2 ESTADO DA ARTE ...................................................................................... 6

2.1 Produtos comercializados ............................................................................................... 6

2.2 Projetos de código aberto ................................................................................................ 7

CAPÍTULO 3 FUNDAMENTOS TEÓRICOS E TECNOLÓGICOS ..................................... 10

3.1 Acelerómetros ............................................................................................................... 10

3.1.1 Dados históricos dos acelerómetros ...................................................................... 12

3.1.2 Acelerómetros Piezoelétricos ................................................................................. 14

3.1.3 Acelerómetros Capacitivos .................................................................................... 15

3.1.4 Acelerómetros Capacitivos de Superfície Micromaquinada .................................... 16

3.2 Giroscópios ................................................................................................................... 17

3.2.1 Dados históricos dos Giroscópios .......................................................................... 18

3.2.2 Giroscópios Mecânicos.......................................................................................... 19

3.2.3 Giroscópios óticos (I-FOG) ..................................................................................... 20

3.2.4 Giroscópios MEMS ................................................................................................ 21

3.3 Magnetómetros ............................................................................................................. 23

3.3.1 Dados Históricos dos Magnetómetros ................................................................... 24

3.3.2 Magnetómetros de Fluxgate .................................................................................. 24

3.3.3 Magnetómetros de Sensor de Efeito de Hall .......................................................... 26

3.3.4 Magnetómetros de Sensor Magneto-indutivo ......................................................... 26

3.3.5 Magnetómetros de Sensor Magneto-resistivo ......................................................... 27

3.4 Sistemas de navegação ................................................................................................ 28

3.4.1 IMU - Inertial measurement Unit e MARG - Magnetic, Angular Rate and Gravity ..... 28

3.4.2 AHRS - Atittude Heading Reference System ........................................................... 29

3.4.3 INS - Inertial Navigation System ............................................................................ 29

3.5 Algoritmos ..................................................................................................................... 30

vii

3.5.1 Quaternions .......................................................................................................... 31

3.5.2 DCM ..................................................................................................................... 33

CAPÍTULO 4 DESCRIÇÃO DO SISTEMA DE DESENVOLVIMENTO .................................. 36

4.1 MBED ........................................................................................................................... 36

4.2 Placa sensorial de 4DOFs ............................................................................................. 39

4.3 Interface Gráfico ........................................................................................................... 40

4.4 Fusão sensorial ............................................................................................................. 41

4.5 Aquisição da placa sensorial de 9DOFs ......................................................................... 42

CAPÍTULO 5 IMPLEMENTAÇÃO ........................................................................................ 44

5.1 Passos relevantes no desenvolvimento do trabalho ....................................................... 44

5.2 Framework QT .............................................................................................................. 54

5.2.1 Aspeto geral e funcionalidades .............................................................................. 55

5.2.2 Algoritmo e detalhes de implementação ................................................................ 58

CAPÍTULO 6 RESULTADOS E DISCUSSÃO .................................................................... 63

6.1 Sistema IMU com 4DOFs.............................................................................................. 64

6.2 Sistema MARG com 9DOFs .......................................................................................... 66

6.3 Sistema AHRS com 4DOFs ........................................................................................... 68

6.4 Sistema AHRS com 9DOFs ........................................................................................... 70

6.5 Sistema INS de 9DOFs ................................................................................................. 72

CAPÍTULO 7 CONCLUSÃO ............................................................................................ 74

7.1 Conclusões ................................................................................................................... 74

7.2 Trabalho Futuro ............................................................................................................ 75

viii

Lista de Abreviaturas

AHRS – Attitude Heading Reference System

DCM - Direction Cosine Matrix

DMA – Direct Memory Address

DOF – Degree Of Freedom

GAR – Gabinete de Automação e Robótica

GPS – Global Positioning System

IDE – Integrated Development Environment

IMU – Inertial Measurement Unit

INS – Inertial Navigation System

MARG – Magnetic Angular Rate Gravity

MEMS - MicroElectroMechanical Systems

PC – Personal Computer

UAV - Unmanned Aerial Vehicle

ix

Índice de Figuras

Figura 1: Bússola[1] ....................................................................................................................... 1

Figura 2: Dispositivos com tecnologia GPS [2] ................................................................................ 2

Figura 3: Placa ArduPilot-Mega [10] ................................................................................................ 9

Figura 4: Acelerómetro McCollum-Peters [16] ............................................................................... 12

Figura 5: Composição de um acelerómetro piezoelétrico [18]. ...................................................... 14

Figura 6: Esquema de um acelerómetro capacitivo [13]. .............................................................. 15

Figura 7: Processo de fabrico de uma estrutura em ponte[11]. ..................................................... 17

Figura 8: Giroscópio de Foucault [24]. .......................................................................................... 18

Figura 9: Representação dos eixos de um giroscópio, A [25] e B [26]. .......................................... 20

Figura 10: Giroscópio ótico- Desfasamento dos feixes de luz [27]. ................................................ 21

Figura 11: Efeito de aceleração de Coriolis[29]. ............................................................................ 22

Figura 12: Estrutura de tipo pente [29]. ........................................................................................ 23

Figura 13: Bússola magnética [32]. .............................................................................................. 24

Figura 14: Relação entre os eixos de um magnetómetro e o norte magnético [33]........................ 25

Figura 15: Vetor do campo magnético de um sensor magneto-resistivo [30]. ................................ 27

Figura 16: Esquemático de um sistema INS. ................................................................................ 30

Figura 17: Representação espacial de um quaternion [3]. ............................................................ 32

Figura 18: [39]. ............................................................................................................................ 37

Figura 19:Ambiente de Programação - KeiluVision ........................................................................ 38

Figura 20: Ambiente de Programação – IDE on-line do mbed ........................................................ 38

Figura 21: ArduIMU Sensor Board- Top (A), Bottom (B) [40]. ........................................................ 40

Figura 22: Breakout Board [40]. ................................................................................................... 40

Figura 23: Ambiente Gráfico QT. ................................................................................................... 41

Figura 24: Exemplificação dos ângulos roll, pitch e yaw num objeto [42]. ..................................... 42

Figura 25: Placa 9 Degrees of Freedom - Sensor Stick [43]. ......................................................... 43

Figura 26: Protótipo final – com cobertura (A) e sem cobertura (B). .............................................. 43

Figura 27:Eixos de Referência ....................................................................................................... 53

Figura 28: Interface gráfico - QT .................................................................................................... 55

x

Figura 29:Interface Gráfico - Comandos ........................................................................................ 56

Figura 30:Ambiente Gráfico – Janela de Registo ............................................................................ 57

Figura 31:Ambiente Gráfico - Gráfico ............................................................................................. 57

Figura 32:Fluxograma geral do Interface Gráfico QT ...................................................................... 58

Figura 33:Fluxograma – Envio de Comandos ................................................................................ 59

Figura 34:Fluxograma – Novo Dado Recebido ............................................................................... 60

Figura 35:Fluxograma – Nova Trama Recebida ............................................................................. 61

Figura 36: Ambiente Gráfico – Sistema IMU (4DOFs) em Repouso ............................................... 65

Figura 37: Gráficos – Sistema IMU (4DOFs) em Repouso ............................................................. 65

Figura 38:Gráfico – Perturbações em cada Eixo e Estabilização (IMU) .......................................... 66

Figura 39:Gráfico – Saturação dos Acelerómetros do Sistema IMU (4DOFs) ................................. 66

Figura 40:Gráfico – Saturação do Giroscópio do Sistema IMU (4DOFs) ......................................... 66

Figura 41:Gráfico – Sistema MARG (9DOFs) em Repouso ............................................................. 67

Figura 42:Gráfico – Não Saturação dos Acelerómetros do Sistema MARG ..................................... 67

Figura 43: Gráfico – Não Saturação dos Giroscópios do Sistema MARG (Eixo do Z) ...................... 68

Figura 44:Widget - Representação Inicial ....................................................................................... 69

Figura 45:Widget – Representação Final da Posição Inicial ........................................................... 69

Figura 46:widget – Representação Final (plano horizontal) ............................................................ 70

Figura 47:widget – Representação Final ........................................................................................ 71

Figura 48:widget - Posição Aleatória I ............................................................................................ 71

Figura 49:widget - Posição Aleatória II ........................................................................................... 72

Figura 50:Gráfico - Erro em Regime Estacionário .......................................................................... 73

Figura 51:Gráfico – Funcionamento do INS................................................................................... 73

xi

Índice de Tabelas

Tabela 1:Formatos de Trama ........................................................................................................ 51

Tabela 2:Comandos ...................................................................................................................... 52

xii

Índice de Equações

Equação 1:Instanciação do quaternion (BA) ................................................................................. 31

Equação 2:Instanciação do quaternion (AB) ................................................................................. 31

Equação 3:Matriz de Rotação (BA) ................................................................................................ 32

Equação 4:Ângulos de Euler a partir de quaternions ..................................................................... 33

Equação 5:Matriz de Transformação (BA) ..................................................................................... 33

Equação 6:Propriedades de matrizes ortonormais ......................................................................... 33

Equação 7:Matrizes Elementares de Transformação ..................................................................... 34

Equação 8:Instanciação de sequência de rotações ....................................................................... 34

Equação 9:Matriz de Rotação Final ............................................................................................... 35

Equação 10:Ângulos de Euler a partir de DCM.............................................................................. 35

1

Capítulo 1

Introdução

1.1 Enquadramento

A tecnologia está cada vez mais presente no dia-a-dia e recorre-se cada vez mais a ela com o

objetivo de se simplificar processos, diminuir mão-de-obra, substituir o próprio Homem na

execução de tarefas com alto nível de risco, entre muitos outros motivos. Os avanços tecnológicos

são acompanhados por necessidades do Homem, no sentido de melhorar e simplificar processos.

Neste sentido, pode dizer-se que, desde cedo, o Homem sentiu necessidade de conhecer a sua

própria localização ou a de outros pontos ou locais, tendo recorrido frequentemente ao desenho de

mapas para meio de orientação. Esta necessidade proliferou até aos dias de hoje, tendo tido

pontos de viragem históricos importantes, como é o caso da bússola magnética representada na

Figura 1.

Figura 1: Bússola [1]

2

A bússola magnética fora dos primeiros dispositivos de orientação desenvolvidos, tendo sido usada

por navegadores durante a descoberta do mundo, sendo ainda utilizada nos dias de hoje.

A necessidade de saber a localização e orientação de um corpo fora também sentida durante a

segunda guerra mundial, tendo causado um grande impulso no desenvolvimento de dipositivos

capazes de determinar a orientação e localização de determinado objeto, por exemplo misseis

comandados remotamente. Estes dispositivos, designados por sistemas de navegação inerciais são

utilizados nos dias de hoje em várias áreas, tendo particular destaque a área militar e aeroespacial,

que como referido anteriormente, foram áreas impulsionadoras ao desenvolvimento destes

dispositivos. O recurso a sistemas de navegação inercial permite a exploração de território sem

colocar em risco a vida humana, por exemplo em situações de resgate a quando de uma catástrofe

ou mesmo na exploração de outros planetas. Estes sistemas são também usados, por exemplo em

submarinos e, tal como fora referido anteriormente, em mísseis comandados, pois não necessitam

de uma referência externa ao sistema.

Outro ponto de viragem histórico foi o aparecimento do GPS (Global Positioning System). Esta

invenção do século XX utiliza tecnologia de ponta e satélites de milhares de euros a fim de obter a

localização específica de um corpo. A Figura 2 ilustra dispositivos com tecnologia GPS que são

possíveis encontrar no mercado.

Figura 2: Dispositivos com tecnologia GPS [2]

3

Porém esta tecnologia tem limitações no que diz respeito à receção de sinal. Não é possível usar

GPS em situações de condições atmosféricas adversas, bem como em cidades caracterizadas pela

elevada densidade de grandes edifícios ou mesmo dentro dos próprios edifícios. Esta limitação põe

fim à possibilidade de utilização desta tecnologia em robots indoor. Esta mesma limitação

compromete a utilização de GPS em robots de salvamento, ou seja no que diz respeito à procura

de sobreviventes em caso de uma catástrofe, por exemplo busca por entre destroços de um

edifício, ou no caso de um desabamento de uma mina numa busca no subsolo. Esta limitação

estende-se também ao meio subaquático, onde não é possível a receção de sinal, ou seja, por

exemplo os submarinos, não podem utilizar este sistema de localização.

Visto isto, são necessários sistemas alternativos, como sistemas de navegação inerciais, com vista

a determinar o comportamento de um determinado corpo/robot dentro de edifícios, em meios

subterrâneos ou subaquáticos sem qualquer limitação [3].

Os sistemas de navegação inerciais são normalmente dotados de, pelo menos, dois tipos de

sensores, acelerómetros e giroscópios. Os acelerómetros, em particular, servem para medir a força

de aceleração a que determinado corpo está sujeito. Sendo muito utilizados, por exemplo na

indústria automóvel no sistema de controlo do airbag. Os giroscópios são sensores que permitem

saber a orientação de um determinado corpo. Estes dois tipos de sensores têm vindo a ter uma

grande relevância no que diz respeito à evolução dos jogos de consolas. Nos dias que correm, jogar

numa consola não significa necessariamente ter um comando cheio de botões nas mãos. Foi

possível com este tipo de tecnologia reconhecer o movimento humano e repercuti-lo na imagem,

dando um carácter diferente aos jogos e à forma de jogar que era habitual até ao final dos anos

90. Este conceito alargou-se também aos dispositivos móveis, os smartphones e tabletes, que têm

surgido com grade força no mercado neste últimos anos. Embora de um modo mais simplista, os

jogos de telemóvel também têm vindo a acompanhar este boom tecnológico que continua em

crescimento.

4

1.2 Objetivos

Este trabalho tem como objetivo a criação de sistemas IMU, AHRS e INS, utilizando sensores

MEMS (Microelectromechanical systems) de baixo custo, sem recurso a fontes de informação

externas aos sistemas. Tendo como objetivo inicial o desenvolvimento de um protótipo que permita

a simulação de uma plataforma móvel.

Estes sistemas têm em vista uma integração futura em robots indoor de forma a auxiliar a

determinação da localização e orientação do mesmo em tempo real. Inerente aos objetivos

enunciados vem o objetivo de avaliar e comparar as características de cada um dos sistemas, bem

como analisar os resultados obtidos de forma a avaliar a fiabilidade de cada um.

Como objetivo final, tem-se o desenvolvimento de um conjunto de bibliotecas que permita a

integração deste sistema de orientação inercial em diversas plataformas robóticas, bem como

permitir a utilização de diferentes sensores no sistema inercial.

1.3 Organização da dissertação

Este documento encontra-se dividido em sete partes, sendo uma delas este primeiro capítulo onde

é feita uma introdução do âmbito do trabalho e descritos os objetivos do mesmo.

No segundo capítulo consta o estudo do estado da arte, onde são citados alguns produtos

comercializados e projetos de código abertos no mesmo âmbito que o deste trabalho.

Encontra-se no terceiro capítulo toda a informação teórica e tecnológica associada ao

desenvolvimento deste trabalho, contendo as descrições genéricas dos três tipos de sensores

utilizados neste trabalho, bem como a diferenciação de algumas das diferentes tecnologias de cada

um. Ainda neste capítulo são clarificados os conceitos de IMU, AHRS e INS e explicitadas duas

diferentes teorias, muito usadas em algoritmos de projetos atuais.

No quarto capítulo é descrito o sistema de desenvolvimento utilizado para a realização deste

trabalho.

5

O quinto capítulo é inteiramente dedicado à implementação, visando salientar todo o procedimento

do trabalho, bem como enquadramento de alguns contratempos associados a ele.

No sexto capítulo são apresentados os resultados obtidos e respetiva discussão.

No sétimo e último capítulo é apresentada a conclusão deste trabalho e referidas algumas

sugestões para implementação futura.

6

Capítulo 2

Estado da Arte

Neste Capítulo é feita uma exposição do levantamento de informação realizado durante a fase

inicial deste trabalho, constando neste ponto diferentes produtos que são possíveis de encontrar no

mercado com fins similares ao deste projeto, bem como projetos no mesmo âmbito de código

aberto.

2.1 Produtos comercializados

Atualmente, no mercado, é possível encontrar uma vasta e alargada gama deste tipo de produtos.

Os preços acompanham a variedade, variando sensivelmente desde centenas de euros até vários

milhares. Podem-se diferenciar três grandes gamas de produtos disponíveis: as de baixo custo,

gama média e gama militar/aeronáutica.

As soluções de baixo custo variam entre cem e quinhentos euros e baseiam-se em tecnologia

MEMS, de reduzidas dimensões e resolução relativamente baixa. Destinam-se aplicações de pilotos

automáticos para aeromodelismo, robots com fins recreativos, ou rastreio do movimento corporal

para fins de multimédia, treino e simulações ou bioengenharia. Neste ramo destacam-se a

VectorNav, LP-Research e a XSENS.

7

Na gama média, os preços variam amplamente desde mil a nove mil euros e destinam-se a

aplicações de teste em ambientes industriais, monitorização de veículos, bem como embarcações

de recreio e robots para aplicações onde existe algum fator de risco (vidas humanas, perdas

materiais volutadas). Nesta gama, a tecnologia MEMS é complementada com FOG.

Os preços, na gama alta, atingem até varias dezenas de milhares de euros e a tecnologia utilizada

varia também entre giroscópios de fibra ótica, de lazer e MEMS de alta precisão. Destinam-se

sobretudo ao ramo aeronáutico e aplicações militares, sendo alguns dos grandes nomes a KVH, a

Chelton Avionics, a Crossbow, entre outras.

2.2 Projetos de código aberto

Encontram-se disponíveis, online, um grande leque de códigos abertos que usam diferentes

algoritmos com a finalidade de determinar o comportamento de determinado objeto. Neste

subponto serão referenciados alguns exemplos, com vista a explicar sucintamente para que servem

e quais as circunstâncias de funcionamento.

Como primeiro exemplo tem-se o XmegaPilot [4], que se trata de um conjunto de hardware e

software aberto direcionado a aplicações de pilotos automáticos para aviões e quadcopters

telecomandados para amadores, investigadores, estudantes e entusiastas. O processador utilizado

no XmegaPilot tem uma frequência de relógio de 32MHz e possui uma avançada arquitetura e

periféricos com DMA e sistema de eventos. Este oferece mais que o dobro do desempenho do

processador padrão do Arduino (ATmega1280) que permite apenas uma frequência de 16MHz. O

XmegaPilot usa algoritmos de fusão sensorial de MARGs para estimar a orientação. Baseia-se na

implementação de Madgwick, usando quaternions (este método encontra-se explicitado mais

adiante no capítulo 3) e nove DOFs de forma a obter maior precisão e eliminar o drift dos

giroscópios.

Outro exemplo é o sf9domahrs [5], este usa como hardware a plataforma Razor 9DOF IMU AHRS e

a sua implementação usa o DCM (Direction Cosine Matrix). Tem por base um sistema AHRS com a

8

correção do drift dos giroscópios a partir dos acelerómetros e magnetómetros. O código do

sf9domahrs baseia-se no código 6 DOF IMU ao qual fora adicionado a componente dos

magnetómetros. O sf9domahrs, segundo os programadores envolvidos na implementação do

referido código, aparentemente apresenta bons resultados. Este possuiu uma taxa de transferência

de bits, referida pelos mesmos, de 57600 bits/s.

Mais um bom exemplo é o FreeIMU [6], trata-se de um projeto realizado desde raiz, contemplando

toda a construção da placa onde se encontram os sensores, bem como a implementação do

código. O FreeIMU tem como finalidade determinar a orientação de um objeto com base em três

tipos de sensores, acelerómetros, giroscópios e magnetómetros. A implementação do código tem

por base o método de Sebastian Madgwick e usa a estimativa de MARG, sendo compatível com o

Arduino. Este projeto teve várias etapas no seu desenvolvimento, sendo constituído na sua última

versão pelo MPU6050 (acelerómetros e giroscópios) e pelo HMC5883L (magnetómetros).

Para finalizar os exemplos neste âmbito, temos em última instância um conjunto de três diferentes

projetos, ArduPlane [7], ArduCopter [8] e ArduRover [9]. Ambos os projetos usam a placa de

desenvolvimento ArduPilot Mega, sendo considerada das mais avançadas placas existentes no

mercado que permite a integração de projetos baseados em sistemas IMU de código aberto para

pilotagem automática. Esta placa, ilustrada na Figura 3, permite a integração de projetos de aviões,

barcos, carros, helicópteros e mult-icópteros, tendo na sua constituição três acelerómetros, três

giroscópios e três magnetómetros [10].

9

Figura 3: Placa ArduPilot-Mega [10]

ArduPlane [7] é um projeto que fornece um controlo para UAVs completo com trajetos

programáveis, permite o reconhecimento de pontos em 3D e o envio de comandos durante o voo,

possui também um poderoso software ao nível do solo. O ArduPlane permite carregar dados seja

no solo como em meio aéreo, analisá-los, desenhar gráficos, bem como exportar os dados para o

Google Earth. Pode ainda ser feito o comando a partir do PC não sendo necessário o tradicional

comando por RC.

ArduCopter [8] é um projeto direcionado a helicópteros e variantes como quadcopter. O

ArduCopter, à semelhança do ArduPlane fornece um controlo para UAVs completo com trajetos

programáveis, bem como o controlo remoto ou automático durante o voo, reconhecimento de

pontos em 3D e um poderoso software ao nível do solo. É um projeto em tudo semelhante com o

anterior, mas direcionado para helicópteros.

O terceiro projeto, ArduRover [9], é baseado no primeiro, ArduPlane, porém direcionado para o

meio terrestre. Este projeto sem componente aérea permite percorrer uma lista de pontos pré-

definidos, cuja definição pode ser realizada previamente ou mesmo durante a navegação através

do modo manual. Quando terminada a definição dos pontos é possível repetir o percurso através

do modo automático.

10

Capítulo 3

Fundamentos Teóricos e Tecnológicos

Neste subcapítulo é feita uma breve descrição do funcionamento geral de cada sensor utilizado

neste trabalho e um breve enquadramento histórico dos mesmos. É feita também uma exposição

de algumas das diferentes tecnologias existentes relativamente a cada um deles, sendo eles

acelerómetros, giroscópios e magnetómetros (bússolas eletrónicas). Serão também introduzidos

alguns conceitos e realizadas comparações relativas aos sistemas IMU, AHRS e INS. Finalmente, e

não menos importante, é feita uma abordagem dos diferentes métodos usualmente utilizados em

implementações atuais de sistemas do âmbito deste trabalho, o método dos quaternions e o

método DCM.

3.1 Acelerómetros

Um acelerómetro é um sensor que permite medir a força de aceleração de um corpo. Estas forças

podem ser estáticas ou dinâmicas. Entenda-se por estáticas forças com uma intensidade

constante, tal como a força da gravidade e por dinâmicas qualquer força que varie de intensidade

no tempo, provocando movimento ou vibração de um corpo [11]. Neste sentido, estes dispositivos

permitem medir a aceleração, vibração, inclinação e o impacto de um choque [12].

11

Existem vários tipos de acelerómetros e por isso, diferentes aplicações e limitações. No que diz

respeito ao conceito base de funcionamento dos acelerómetros na sua generalidade, estes regem-

se essencialmente pela segunda Lei de Newton, F=m*a. Significa que a força a que um corpo está

sujeito é igual ao produto da sua massa pela aceleração. Sendo este o princípio de funcionamento

de um acelerómetro, o dispositivo terá na sua constituição uma massa de teste (também

designada por massa sísmica) e esta mover-se-á aquando de uma aceleração [13]. Entenda-se que

um acelerómetro é simplesmente um transdutor que transforma um tipo de energia num outro

tipo, ou seja, converte a aceleração mecânica num sinal elétrico [13] [14].

Sucintamente, no que diz respeito à leitura da medição propriamente dita, esta pode ter por base

diferentes tecnologias. Por exemplo, os primeiros acelerómetros mecânicos conhecidos usavam

uma caneta acoplada a um pêndulo, traduzindo diretamente a aceleração sentida pelo pêndulo

num gráfico registado num papel que se movia por baixo da caneta [15]. Por outro lado os

acelerómetros modernos, baseados em tecnologia MEMS traduzem a aceleração sentida numa

massa de silício microscópica numa variação de tensão na ordem dos milivolts [12]. Mais à frente,

neste mesmo subcapítulo serão explicitadas várias tecnologias com algum pormenor.

Como já fora referido, os acelerómetros podem ser usados para medir acelerações, vibrações,

inclinações ou impactos a que um corpo esteja sujeito. Esta diversidade de situações faz com que

seja possível a sua aplicação nas mais diversas áreas e com diferentes intuitos. São, por exemplo,

usados na indústria automóvel no sistema de controlo do airbag, neste caso particular, o objetivo é

medir o impacto de um choque e acionar o sistema de airbag. Estão também presentes, por

exemplo, nas turbinas dos aviões com o objetivo de medir a vibração a que as mesmas estão

sujeitas para fins de segurança. Estes dispositivos são cada vez mais utilizados para a

monotorização do movimento humano, por exemplo em jogos de consolas. Para finalizar os

exemplos, salienta-se o facto de serem utilizados também para o controlo de aviação durante o

modo de navegação de piloto automático [12].

12

3.1.1 Dados históricos dos acelerómetros

O primeiro acelerómetro comercializado de que há registo fora desenvolvido por Burton McCollum e

Orville Peters. Este usa uma configuração de meia-ponte wheatstone e é constituído por uma

secção em forma de “E”, possuindo na sua constituição discos de carbono. O seu funcionamento

tem por base a compressão do topo da secção em “E” aquando de uma aceleração, causando

consequentemente tensão na sua parte inferior. Em 1923 fora escrito um documento explicativo do

seu funcionamento, desempenho e aplicações. Este acelerómetro fora usado na Alemanha e

comercializado nos Estados Unidos da América no ano de 1927 por Southwark, posteriormente por

Baldwin-Southwark e mais recentemente pela BLH Electronics. A sua frequência de ressonância era

entre 250Hz e 2kHz [16].

Em 1942 V. Bruel e Viggo Kjaer formaram a Bruel and Kjaer. Em 1943 a empresa vendeu o

primeiro modelo de acelerómetro piezoelétrico, o modelo 4301. A Figura 4 mostra ao que

possivelmente se pareceria este acelerómetro [16].

Figura 4: Acelerómetro McCollum-Peters [16]

13

O material piezoelétrico utilizado foi o sal de La Rochelle (Tartarato de sódio e potássio). Porém

este material não era o indicado para funcionar como transdutor. Algumas das suas limitações

eram o reduzido espectro térmico de funcionamento, apenas entre aproximadamente 49ºC a 54ºC

e o facto de a humidade afetar o seu desempenho [16].

Sensivelmente na mesma época, Walter Kistler iniciou o desenvolvimento de um transdutor de

pressão de quartzo, o qual viria a concluir 7 anos depois, valendo-lhe uma patente na Suíça pelo

amplificador de carga desenvolvido [16].

Um forte incentivo ao desenvolvimento da tecnologia de acelerómetros foi a segunda guerra

mundial, tendo sido sugerido em 1949 a uma empresa de fabrico de condensadores o

desenvolvimento de um acelerómetro leve capaz de testar a vibração de aeronaves e misseis [16].

Em 1951 a empresa Endevco, fabricou o seu primeiro acelerómetro piezoelétrico, utilizando

também como material piezoelétrico o titanato de bário [16].

Durante os anos 60 Kistler desenvolveu um tipo de transdutores de força de quartzo, servindo esse

modelo ainda hoje como referência para a maioria dos martelos para testes modais de impacto

[16].

Uma outra empresa, a Wilcoxon Research Incorporated lançou em 1960 a cabeça de impedância

mecânica automática. Esta invenção fora patenteada em 1959 e era composta por um gerador de

vibração controlável, um acelerómetro piezoelétrico e transdutor de força. Embora os testes de

impedância mecânica tenham tido o seu pico nos anos 60 e 70, estes testes de vibração por força

controlada são realizados ainda nos dias de hoje [16].

Na década de 70 os modelos dos transdutores continuaram a evoluir, tornando-se mais

sofisticados. As empresas da época começaram a focar-se na miniaturização dos acelerómetros.

Neste mesmo período o titanato zirconato de chumbo (PZT) ganhou estatuto de material de

transdução standard [16].

14

3.1.2 Acelerómetros Piezoelétricos

Os acelerómetros piezoelétricos constam entre os primeiros tipos de acelerómetros a surgir no

mercado e proliferaram até aos dias de hoje. Assentam na mesma base de funcionamento de

todos os acelerómetros, contêm uma massa de teste em contacto com um material piezoelétrico,

baseando-se nas propriedades destes materiais para medir a aceleração da massa. Neste caso, a

massa de teste encontra-se em contacto com material piezoelétrico e aquando de uma aceleração,

exerce pressão sobre o mesmo, carregando-o eletricamente. Este fenómeno, designado por efeito

piezoelétrico, permite obter uma tensão de saída proporcional à aceleração da massa. Para uma

melhor perceção a Figura 5 ilustra a constituição deste tipo de acelerómetros [17].

Figura 5: Composição de um acelerómetro piezoelétrico [18].

Os materiais piezoelétricos podem recair sobre dois tipos, os cristais simples como o quartzo ou

materiais cerâmicos como o titanato de bário, que fora o material utilizado nos primeiros

acelerómetros piezoelétricos. Os cristais têm maior longevidade, mas menor sensibilidade que os

cerâmicos. Estes últimos têm também um menor custo associado à sua produção [16].

Na sua generalidade, os acelerómetros piezoelétricos são utilizados para medir vibração e impacto,

não se adequando a aplicações com fim de medir a aceleração gravítica. Atendendo a esta

15

característica limitativa deste tipo de acelerómetros, a sua gama de aplicações recai, por exemplo,

sobre a área da construção civil no que diz respeito a pontes, grandes torres, centros comerciais

entre outros, e também sobre motores, turbinas e toda a maquinaria industrial que necessite de

controlo de vibração [17].

3.1.3 Acelerómetros Capacitivos

A tecnologia dos acelerómetros capacitivos é, mais uma vez, uma técnica de conversão de energia

mecânica num sinal elétrico, neste caso particular a conversão é realizada por meio de um

condensador diferencial. Este tipo de tecnologia está presente em diferentes acelerómetros, e nesse

sentido esta elucidação é uma simplificação generalizada. A Figura 6 ilustra a constituição deste

tipo de dispositivos [13].

Figura 6: Esquema de um acelerómetro capacitivo [13].

Quando sujeito a uma força de aceleração, a massa de teste que se encontra acoplada a uma

mola movimenta-se, fazendo variar a distância entre as placas do condensador e

consequentemente provocando uma variação de capacidade do mesmo. É através deste fenómeno

que a medição da aceleração é realizada, pois a linearidade deste sistema permite determinar a

aceleração a que um corpo está sujeito com base na variação da capacidade do condensador. Ou

16

seja, se um determinado corpo sofrer uma aceleração constante, a capacidade do condensador

permanecerá também constante. Este tipo de acelerómetro tem um melhor desempenho em baixa

frequência, podendo operar em modo servo de forma a atingir uma maior estabilidade e

linearidade [13].

3.1.4 Acelerómetros Capacitivos de Superfície Micromaquinada

Tal como o nome indica, os acelerómetros Capacitivos de Superfície Micromaquinada têm por base

de funcionamento a metodologia de funcionamento de um acelerómetro capacitivo. Este tipo de

acelerómetros surgiu com a necessidade de criar um dispositivo de menores dimensões, posto isto,

recorreu-se à microeletrónica e foi então possível criar acelerómetros com tecnologia MEMS [19]

[20] [11].

Estes são constituídos por uma superfície micromaquinada de polissilício no topo, designada por

massa de teste, sendo esta suportada por molas, também elas do mesmo material. As molas

assentam numa base de silício, sendo elas as responsáveis por oferecer resistência à força de

aceleração. A deflexão da estrutura, ou seja a extensão ou compressão das molas de polissilício, é

medida através de um condensador diferencial. O condensador diferencial consiste em placas fixas

à estrutura, independentes da massa em movimento e placas ligadas à massa em movimento. A

variação da distância entre as placas faz variar a capacidade do condensador resultando desta

forma um valor de saída [11] [19] [20].

A estrutura da superfície micromaquinada é construída através da adição de materiais, camada por

camada, na superfície do substrato. As finas camadas têm normalmente 15 micrómetros de

espessura e são genericamente de dois tipos, as designadas por camadas estruturais e as

camadas sacrificiais, estas últimas são eliminadas durante o processo de fabrico. A Figura 7 ilustra

o processo típico de obtenção de uma estrutura em ponte [11] [19] [20].

17

Figura 7: Processo de fabrico de uma estrutura em ponte [11].

3.2 Giroscópios

Os giroscópios na sua essência são sensores que permitem determinar a orientação de um corpo

baseando-se no princípio do momento angular. Neste sentido, estes dispositivos são capazes de

detetar e medir o momento angular a que um determinado corpo está sujeito relativamente a um

sistema de eixos de referência. Um giroscópio é capaz de determinar o movimento exato de um

corpo e a sua orientação sem recurso a uma fonte de informação externa ao sistema.

Estes dispositivos são utilizados em diversas áreas, podendo ser combinados com acelerómetros

de forma a criar um sistema de navegação inercial [21]. Os giroscópios são utilizados na área

militar, industrial, médica e mesmo a nível do consumidor. Nos dias que correm os smatphones e

tabletes estão muitas vezes dotados de giroscópios, bem como comandos de consolas de jogos.

Este tipo de dispositivos estão cada vez mais presentes no dia-a-dia das pessoas e com uma

tendência positiva de crescimento. No que diz respeito à área militar, que prima pela precisão, são

18

utilizados os giroscópios óticos, porém com o avanço da tecnologia MEMS, o desempenho destes

últimos não fica muito aquém do desempenho dos óticos [22].

3.2.1 Dados históricos dos Giroscópios

Foi no início de 1700 que se iniciou o recurso a sistemas de orientação para fins de navegação

marítima em condições nublosas. O giroscópio mais tradicional foi inventado nos anos de 1800

pelo cientista francês Jean Bernard Leon Foucault, sendo o próprio a apelidar o seu invento pelo

nome de giroscópio no ano de 1852. A Figura 8 mostra ao que se pareceria o invento de Foucault

[23].

Figura 8: Giroscópio de Foucault [24].

No final dos anos 1800 e início dos anos 1900 os giroscópios foram patenteados para uso a bordo

de navios. Sensivelmente em 1916 iniciou-se a aplicação destes dispositivos em aeronaves, tendo

sido feitos melhorias ao longo do século vinte, continuando a ser, ainda hoje, aplicados nessa área.

Nos anos 60 os giroscópios a laser foram introduzidos pela primeira vez no mercado, tendo vindo a

fazer sucesso na área aeronáutica e na área militar. Mais recentemente surgiram os giroscópios de

tecnologia MEMS, que trouxeram consigo um grande avanço, as suas dimensões, muito inferiores

às dos giroscópios tradicionais, fizeram a grande diferença nas aplicações deste tipo de dispositivos

19

[23]. Os giroscópios de tecnologia MEMS proliferaram no mercado não só graças às suas

dimensões, mas também ao facto de terem um baixo consumo energético, baixo custo e um

desempenho promissor [22].

3.2.2 Giroscópios Mecânicos

Os giroscópios mecânicos foram o primeiro tipo de giroscópios a surgir, sendo caraterizados por

duas propriedades fundamentais, inércia giroscópica e a precessão. No que diz respeito à inércia

giroscópica, entenda-se que a rigidez do espaço físico do giroscópio é consequência da primeira lei

de Newton, resumidamente, o estado em que o corpo se encontra manter-se-á enquanto não seja

sujeito a forças externas. Ou seja, um corpo em repouso permanecerá em repouso e um corpo em

movimento uniforme tende a continuar em movimento no mesmo plano e sobre o mesmo eixo no

espaço. Um exemplo da inercia giroscópica é o disparo de uma bala de espingarda, que rodando

sobre si mesma, a bala tende a manter um voo em linha reta, o que não se verificaria se esta não

rodasse sobre si mesma durante o voo. Quanto à precessão, entenda-se que quando um corpo se

encontra em movimento e experimenta uma força externa tenderá a alterar a direção do eixo de

rotação, mais precisamente numa direção que resultará em um ângulo reto relativamente ao vetor

representante da força aplicada e o próprio eixo de rotação.

Os três eixos dos giroscópios são designados por eixo de rotação, entrada e saída. O eixo de

rotação é onde o rotor se encontra a girar. O eixo de entrada é perpendicular ao eixo de rotação,

sendo o eixo em torno do qual a rotação provoca uma saída máxima. O eixo de saída é em torno

do qual o conjunto anteriormente mencionado gira. A Figura 9 ilustra o que se acaba de referir.

20

Figura 9: Representação dos eixos de um giroscópio, A [25] e B [26].

3.2.3 Giroscópios óticos (I-FOG)

Em 1913 G. Sagnac fez a primeira demonstração da deteção da rotação inercial por meio de

interferómetro ótico. Os giroscópios óticos são uma miniatura dos dispositivos óticos de estado

sólido com o fim de medir com precisão a rotação mecânica segundo o princípio de Sagnac. De

acordo com o efeito Sagnac, são emitidos dois feixes de luz idênticos em direções opostas em

torno de um circuito fechado, sendo que, a variação do tempo de propagação dos feixes de luz é

proporcional à taxa de rotação sobre o eixo normal que caracteriza o circuito ótico fechado. De

outra forma, se o sistema estiver em repouso os feixes de luz irão partir simultaneamente de um

mesmo ponto e irão regressar ao ponto de origem precisamente ao mesmo tempo, ou seja em

fase. Por outro lado, se houver um movimento de rotação num determinado sentido, o feixe de luz

emitido nesse mesmo sentido demorará mais tempo a atingir a origem do que o tempo que

demoraria em repouso. Por sua vez, o feixe de luz com direção oposta irá demorar menos tempo

do que a que demoraria com o sistema em repouso. Esta diferença de tempo traduzida pelo

desfasamento dos feixes de luz pode ser medida através de um interferómetro. A Figura 10 ilustra o

desfasamento dos feixes de luz aquando de uma rotação no sentido horário [27].

21

Figura 10: Giroscópio ótico- Desfasamento dos feixes de luz [27].

As vantagens dos giroscópios de fibra ótica em relação aos giroscópios mecânicos são o facto de

estes estarem isentos de partes móveis, a rápida inicialização, serem mais leves, terem baixo

consumo e não serem afetados pela força gravítica. Os giroscópios interferométricos de fibra ótica

foram desenvolvidos nos últimos 80 anos, sendo considerados nos dias que correm o tipo de

giroscópio ótico mais popular e usado numa vasta variedade de aplicações. São utilizados, por

exemplo, em aeronaves, perfuradores de petróleo, sistemas de navegação inercial, estabilizadores

de antena, sistema de navegação para automóveis e robots [27] [28].

3.2.4 Giroscópios MEMS

Os sensores inerciais micromaquinados consistem em acelerómetros e giroscópios, sendo estes os

sensores mais importantes baseados em silício. No caso particular dos giroscópios, estes usam na

maior parte das vezes uma massa de teste para medir a rotação. Todos os giroscópios deste tipo

baseiam-se na transferência de energia entre dois módulos vibratórios de uma estrutura, causada

22

pela aceleração de Coriolis. A aceleração de Coriolis é uma aceleração aparente que surge em

relação a um referencial de rotação, sendo esta aceleração proporcional à taxa de rotação. A Figura

11 ilustra o conceito da aceleração de Coriolis [29].

Figura 11: Efeito de aceleração de Coriolis [29].

Os giroscópios vibratórios foram demonstrados pela primeira vez no início dos anos 80, contudo o

primeiro lote de giroscópios micromaquinados de silício foi produzido em 1991. No caso particular

dos tuning fork gyroscopes estes contêm duas massas que oscilam com igual amplitude, mas em

direções opostas. Aquando de uma rotação, a força de Coriolis cria uma vibração ortogonal que

pode ser sentida através de vários mecanismos. Por exemplo, usar uma estrutura do tipo pente e

leva-la ao estado de ressonância, de modo a que qualquer rotação sobre qualquer eixo resulte

numa elevação da massa, estas alterações podem ser detetadas através de elétrodos capacitivos

colocados por debaixo dessa mesma massa. A Figura 12 ilustra a tecnologia utilizada por este tipo

de giroscópios [29].

23

Figura 12: Estrutura de tipo pente [29].

3.3 Magnetómetros

Um magnetómetro é um instrumento de medida que serve para medir a intensidade e direção de

campos magnéticos, incluindo tanto os campos próximos da terra como os do espaço. Os

magnetómetros têm uma utilização generalizada no que diz respeito a sistemas de referência de

atitude e rumo (AHRS), sendo exemplos destes casos as aplicações em aeronaves, satélites, navios

e submarinos operados remotamente. São também vulgarmente usados em GPS, quer em mão

como aplicados em veículos, recebendo estimativas de qual será a sua posição. Os magnetómetros

também têm vindo a encontrar espaço no mundo dos telemóveis, sendo muitas vezes combinados

com o GPS e também com acelerómetros e giroscópios com vista ao aumento da precisão [30].

Para determinar com precisão a posição do sistema, o campo magnético deverá ter um baixo nível

de distorção. Enquanto no mar, no espaço ou no ar existem relativamente poucas fontes de

distorção, no caso do solo terrestre existe um grande leque de potenciais fontes de interferência.

São exemplos dessas fontes de distorção, a maioria das estruturas artificiais, veículos, cabos

elétricos, depósitos naturais de minério de ferro, entre outros. O conhecimento da magnitude

destas distorções é necessário para determinar se é possível usar o magnetómetro como referência

[30].

24

3.3.1 Dados Históricos dos Magnetómetros

O primeiro dispositivo que surgiu com o mesmo fim que os magnetómetros, fora a bússola

magnética, tendo sido durante séculos o modelo utilizado pelos navegadores marítimos para fins

de orientação de navegação. Ainda hoje se baseia nos mesmos princípios, porém com avanços no

que diz respeito à sua precisão, conceção e construção. A bússola magnética é um dispositivo

através do qual é possível determinar de forma simples e económica a direção em função dos

polos magnéticos da Terra. Este dispositivo consiste simplesmente numa agulha magnetizada

apoiada num pivô de baixa fricção, permitindo que a agulha gire livremente quando interage com

um campo magnético externo. A Figura 13 apresenta uma bússola magnética [31].

Figura 13: Bússola magnética [32].

Graças à evolução nesta matéria, foram criadas versões eletrónicas de bússolas, sendo os

magnetómetros os sensores mais utilizados neste âmbito. Diferentes magnetómetros operam

segundo diferentes princípios, sendo alguns desses exemplos os sensores de efeito de Hall, os

magneto-resistivos, os magneto-indutivos e os de Fluxgate [33].

3.3.2 Magnetómetros de Fluxgate

Fluxgate é essencialmente um transformador com núcleo feito de uma liga, por exemplo níquel e

ferro, cujos domínios magnéticos são facilmente alinhados. Se a corrente no enrolamento primário

variar, então a corrente no enrolamento secundário irá variar em função do campo magnético. O

princípio básico para a medição do campo é comparar a intensidade de corrente que é necessária

25

no enrolamento primário de forma a saturar o núcleo num determinado sentido, sentido esse

oposto ao do campo magnético terrestre. A diferença resulta do campo magnético, não sendo

necessária a saturação total, pois qualquer não-linearidade é suficiente [33].

O núcleo pode ser uma haste ou um toróide. Se for uma haste, as bobines do primário e do

secundário estarão lado a lado ou uma em cima da outra, sendo que o fluxgate responderá em

função da componente do campo magnético terrestre ao longo da haste. Por outro lado ao usar-se

um núcleo toroidal pode medir-se duas componentes do campo magnético terrestre, através de

dois enrolamentos exteriores ao núcleo com um ângulo de 90º entre eles. A construção de uma

bússola requer dois eixos, medindo o campo magnético terrestre sentido por cada um deles [33].

Como ilustra a Figura 14 é possível determinar o ângulo entre um desses eixos e o norte

magnético. Usando os dados da Figura 14 pode dizer-se que o ângulo entre o eixo do X e o norte

magnético é calculado através do arco-tangente da divisão do valor de X pelo valor de Y,

correspondendo cada um destes valores à intensidade do campo magnético terrestre sentido ao

longo dos referidos eixos [33].

Figura 14: Relação entre os eixos de um magnetómetro e o norte magnético [33].

Claramente que o fluxgate terá de ser horizontal, sendo que qualquer inclinação do mesmo

causará um erro de precisão. No sentido de se eliminar este erro pode recorrer-se a um sistema de

26

compensação. Pode também construir-se bússolas insensíveis à inclinação usando um fluxgate de

três eixos e acoplando um sensor de inclinação [33].

3.3.3 Magnetómetros de Sensor de Efeito de Hall

Em 1879 Edwin Hall descobriu que se fizesse atravessar longitudinalmente uma corrente através

de um fino condutor na presença de um campo magnético, surgiria uma tensão ao longo da

largura do condutor [33]. Esta descoberta permitiu a construção de circuitos integrados de efeito

de Hall com transístores para a amplificação do valor de tensão. Quando um comutador de efeito

de Hall é exposto a uma corrente polarizada superior ao valor de threshold, o transístor comuta

para o estado on, caso o valor da corrente seja demasiado baixo este comuta para o estado off.

Com isto, é possível construir uma bússola eletrónica simples que indique o quão perto ou longe

estão os ponto cardeais e intercardeais através de quatro comutadores de efeito de Hall

distribuídos de forma circular em volta de uma agulha magnetizada que gira livremente. Quando a

agulha se alinha com um dos interruptores, esse ficará a on, fazendo fluir a corrente e podendo

fazer-se sinalizar através de um led. No caso de a agulha ficar entre dois interruptores, ambos os

interruptores ficarão a on, podendo iluminar um led que sinalize um ponto intercardinal [33].

Bússolas de maior precisão necessitam um sensor de efeito de Hall, podendo avaliar a direção e

alterações da mesma através do valor de tensão de saída do sensor. Na ausência de campo

magnético o valor de tensão de saída é, idealmente, metade do valor de tensão de operação, com

o aumento do campo magnético do polo sul este valor de tensão irá aumentar, e diminuirá com a

intensificação do campo magnético do polo norte. Neste sentido, colocando dois sensores

ortogonalmente é possível determinar com um baixo erro de precisão a direção da agulha

magnetizada [33].

3.3.4 Magnetómetros de Sensor Magneto-indutivo

Os magnetómetros magneto-indutivos medem o campo magnético através da indutância de uma

bobina ou solenoide. A bobina é utilizada como elemento indutivo num oscilador de relaxamento

27

indutor ou resistivo. Com as alterações do campo magnético a indução da bobine sofre também

alterações, alterando a frequência dos osciladores. A alteração de frequência pode ser medida e

interpretada em termos da componente da força do campo magnético paralelo ao eixo da bobina.

Este tipo de sensor é relativamente recente, tendo sido patenteado pela primeira vez em 1989. Tal

como nos outros sensores é necessário colocar dois sensores ortogonalmente para determinar o

campo magnético horizontal, norte magnético. Esta configuração de dois eixos apenas permite

medir o campo magnético horizontal, podendo recorrer-se a um inclinómetro para obter uma

configuração de três eixos [33].

3.3.5 Magnetómetros de Sensor Magneto-resistivo

Os sensores magneto-resistivos anisotrópicos são especialmente resistivos, sendo constituídos por

uma fina película de material ferromagnético, por exemplo de metal e níquel, colocada numa base

de silício. Sendo sujeitos, durante a sua produção, a um intenso campo magnético de forma a

magnetizar o metal segundo o vetor de magnetização estabelecido. Subsequentemente é aplicado

um campo magnético perpendicular ao metal causando uma rotação do vetor de magnetização e

consequente alteração do ângulo, Figura 15 [30].

Figura 15: Vetor do campo magnético de um sensor magneto-resistivo [30].

28

Este processo causa uma alteração da resistência da película, que pode ser detetada através da

variação da tensão e da interferência a força do campo magnético aplicado. Esta deteção pode ser

feita por meio de um circuito elétrico, como por exemplo, uma ponte Wheastone. Os sensores

magneto-resistivos foram descritos pela primeira vez em 1856 e podem apresentar um, dois ou três

eixos. Estes sensores de dimensão reduzida têm um baixo erro de precisão e são utilizados em

alguns sistemas de GPS [30] [33].

3.4 Sistemas de navegação

Neste subcapítulo serão explicitados alguns sistemas de navegação, os IMUs e MARGs, os AHRSs e

os INSs. Sendo brevemente mencionadas as características e limitações de cada um deles, bem

como os custos associados e aplicações. A apresentação respeita a cronologia associada às

potencialidades de cada um, abordando os sistemas INS, sistemas inerciais de navegação, no

último ponto, pois contemplam o formato mais completo e com maior potencial. Em última

instância é apresentada uma imagem elucidativa onde é apresentado um esquemático

representativo de um sistema INS, constando também a indicação da obtenção de cada uma das

pequenas partes (IMU e AHRS).

3.4.1 IMU - Inertial measurement Unit e MARG - Magnetic, Angular Rate

and Gravity

Um IMU é um sistema de medição inercial, composto por dois tipos de sensores, acelerómetros e

giroscópios, suportando um máximo de três de cada um destes sensores, um por cada eixo. A

cada sensor é-lhe correspondido um DOF, sendo no caso particular de um IMU um máximo de seis

DOFs [3] [34].

Um sistema IMU tem como funcionalidade a recolha de dados em tempo real a partir dos referidos

sensores cuja aquisição é feita a partir dos mesmos, podendo ou não serem convertidos para as

unidades de aceleração e velocidade angular por um microprocessador. Desta forma, através de

29

acelerómetros é possível obter a aceleração linear e a partir de giroscópios a aceleração angular

sem recurso a fontes de informação externa ao sistema [3] [34].

Adicionando um magnetómetro a um sistema IMU, este passa a ser denominado por MARG,

auferindo da capacidade de medir campos magnéticos, nomeadamente o campo magnético

terrestre e podendo ter até nove DOFs. A este tipo de sistemas não lhes é conferido qualquer

tratamento de dados no que diz respeito à obtenção de velocidade, distância ou ângulos. De forma

a diminuir o erro associado à construção dos sistemas, pode ser realizada uma calibração dos

sensores [3] [34].

3.4.2 AHRS - Atittude Heading Reference System

Um AHRS é um sistema idêntico a um IMU, com a vantagem de este ter incorporado ao sistema o

tratamento de dados com cálculo dos valores dos ângulos de Euler. Ou seja, um sistema AHRS

não só permite obter as leituras dos sensores como também os valores de atitude e rumo através

do processamento dos dados por algoritmos sofisticados. Os Mini-AHRS são caracterizados pelas

suas dimensões largamente reduzidas, pela sua alta precisão no processo de medição através de

sensores baseados na tecnologia MEMS e por algoritmos altamente sofisticados [35] [36].

O custo deste tipo de sistemas tem vindo a ser largamente reduzido com a integração de

componentes de tecnologia MEMS, os quais têm vindo a ser produzidos em massa. Este tipo de

sistema é usado em várias áreas, como robots, sistemas de automação e controlo, jogos,

brinquedos telecomandados como aviões e helicópteros, entre outros [35] [36].

3.4.3 INS - Inertial Navigation System

Um sistema INS é um sistema de navegação inercial dotado de todas as potencialidades de um

sistema AHRS com a vantagem de poder determinar não só a orientação de um corpo bem como a

posição do mesmo e a sua velocidade. Ou seja com um sistema INS é possível determinar o

deslocamento que determinado corpo sofreu, permitindo acompanhar o percurso do mesmo em

30

tempo real e a sua orientação. Esta diferença assenta essencialmente no processamento de

algoritmos capazes de determinar a posição e velocidade de um corpo [3].

Recorre-se frequentemente à fusão de sistemas INS a sistemas de GPS, pois a fiabilidade de um

ISN no que diz respeito ao cálculo da posição ao longo do tempo é relativamente baixa, sendo

então necessário realimentar o sistema com uma localização obtida a partir de uma fonte externa a

uma certa frequência capaz de impedir que o erro acumulado exceda os limites tolerados. Por

outro lado quando se trata de um curto período de tempo, mais precisamente alguns segundos, os

sistemas INS têm maior precisão do que os sistemas de GPS. Na Figura 16 encontra-se um

esquemático representativo de um sistema INS. [3] [37].

Figura 16: Esquemático de um sistema INS.

3.5 Algoritmos

A maior parte dos algoritmos utilizados nas implementações atuais usam, ou tem por base, os

algoritmos de Sebastian Madgwick e de Mahoney. Estes por sua vez, usam diferentes

31

implementações e diferentes teorias para a obtenção dos ângulos de Euler, Madgwick usa na sua

implementação quaternions e Mahoney usa DCM. Admitindo que a implementação de Mahoney é

mais elegante, Madgwick passara a adotar a implementação de Mahoney, contudo mantendo a

utilização dos quaternions. Embora tenha adotado a implementação de Mahoney, Madgwick

ressalva o facto de que a sua própria implementação não é nem melhor nem pior que a de

Mahoney, caracterizando-as como equivalentes. Neste subponto serão explicitados os métodos

utilizados por cada um deles de forma a clarificar as teorias.

3.5.1 Quaternions

Quaternion é um número complexo de quatro dimensões que pode ser usado para representar a

orientação de um corpo rígido ou um sistema coordenado tridimensional no espaço [3]. Com base

na Figura 17, digamos que uma rotação arbitrária do sistema de eixos B em relação ao sistema de

eixos A pode ser determinada pela rotação de ângulo θ sobre o vetor , que caracteriza o sistema

de eixos coordenados A. Na Figura 17 esta também representado graficamente os vetores unitários

, , e , , , que representam os sistemas de eixos coordenados A e B respetivamente

[3]. O quaternion que descreve esta orientação, , é definido pela seguinte equação:

Equação 1:Instanciação do quaternion (BA)

,

onde , e são as componentes do vetor unitário . Por outro lado, , é o conjugado de

, que representa a orientação do sistema coordenado A em relativamente ao B e é definido pela

seguinte equação:

Equação 2:Instanciação do quaternion (AB)

.

32

Figura 17: Representação espacial de um quaternion [3].

Os quaternions não têm a propriedade comutativa, admitindo que e são quaternions, então

temos que . A orientação descrita pelo quaternion pode ser representada pela

matriz de rotação definida abaixo [3].

Equação 3:Matriz de Rotação (BA)

O quaternion pode então ser obtido através da resolução de um sistema de equações a partir da

matriz de rotação descrita acima. Para matrizes de rotação imprecisas ou não ortogonais não é

possível obter o quaternion a partir deste método, existindo outros (ex., Bar-Itzhack) que não serão

aqui explicitados [3].

Os ângulos de Euler descrevem a orientação dos eixos coordenados B por meio de rotações

sequenciais a partir dos eixos coordenados A, sendo que φ é o ângulo em torno do eixo , θ é o

ângulo em torno de e ϕ o ângulo em torno de . O cálculo dos ângulos de Euler é realizado a

partir das equações abaixo, cujos cálculos intermedios não são aqui apresentados [3].

33

Equação 4:Ângulos de Euler a partir de quaternions

3.5.2 DCM

DCM trata-se de uma matriz transformada, composta pelo valor do cosseno do ângulo resultante

entre os sistemas de eixos coordenados A e B. Á semelhança do exemplo anterior consideremos o

sistema de eixos A o sistema de eixos inicial e o sistema de eixos B o resultante da transformação.

Considerem-se os seguintes vetores unitários, , , e , , que definem o sistema de

eixos coordenados A e B respetivamente. A matriz que traduz a transformação do sistema A em B

designa-se por , definida na equação abaixo descrita [38].

Equação 5:Matriz de Transformação (BA)

A DCM é uma matriz ortonormal, pois consideramos apenas sistemas de eixos ortogonais,

deste modo a matriz transposta desta é igual à sua matriz inversa, bem como os determinantes

serão iguais [38].

Equação 6:Propriedades de matrizes ortonormais

34

A transformação do sistema de coordenadas por uma rotação de ângulo θ é descrita abaixo pelas

matrizes elementares de transformação para cada um dos eixos [38].

Equação 7:Matrizes Elementares de Transformação

A multiplicação de matrizes não tem a propriedade comutativa, considerando uma sequência de

rotações e respetivas matrizes, o produto das mesmas tem de ser realizado da direita para a

esquerda, respeitando a ordem das operações [38].

De forma a clarificar este método e explicar a obtenção dos ângulos de Euler, considere-se o

seguinte exemplo, um conjunto de três rotações a primeira sobre o eixo do de ângulo θ, a

segunda sobre o eixo do de ângulo ϕ e a terceira sobre o eixo do de ângulo φ. Esta sequência

de rotações pode ser explicitada da seguinte forma:

Equação 8:Instanciação de sequência de rotações

Atendendo ao que fora referido em relação às propriedades das matrizes, a primeira operação será

a multiplicação de , cuja matriz resultante será multiplicada por

respeitando a ordem. O conjunto destas operações resulta na matriz apresentada abaixo [38].

35

Equação 9:Matriz de Rotação Final

Por fim apresentam-se as equações referentes à obtenção dos respetivos ângulos [38].

Equação 10:Ângulos de Euler a partir de DCM

36

Capítulo 4

Descrição do sistema de desenvolvimento

Neste capítulo constam algumas das diferentes fases do desenvolvimento do trabalho, dando maior

atenção aos contornos relativos ao hardware. Inicialmente é feita uma introdução à ferramenta

MBED utilizada neste trabalho, passando a explicar o porquê da sua utilização, bem como em que

consiste. Segue-se uma pequena descrição da primeira placa sensorial usada neste trabalho,

sendo explicado o porquê de ter sido a escolhida e enumeradas algumas das suas vantagens e

desvantagens. Depois de completa a descrição do hardware, passa-se a uma sucinta explicação da

Framework QT usada para a criação de um interface gráfico e gestão de dados, que será abordada

com maior pormenor no capítulo seguinte. Seguidamente é feita uma exposição do problema do

drift dos giroscópios, do qual se tomou conhecimento com o avançar do trabalho e que

comprometeu o uso da primeira placa sensorial. Passando então a descrever a segunda placa

sensorial entretanto adquirida, bem como o porquê da escolha e quais as suas vantagens em

relação à anterior.

4.1 MBED

Para a realização deste trabalho utilizou-se a placa mbed LPC1768. A utilização deste hardware

deve-se a esta ser uma plataforma de desenvolvimento em utilização pelo GAR, Gabinete de

Automação e Robótica da Universidade do Minho. Uma vez que esta plataforma oferece um

37

desempenho bastante justo para este tipo de aplicações, fora então tomada a decisão de utilizá-la

neste trabalho.

MBED é uma ferramenta para prototipagem rápida constituída pela placa mbed LPC1768,

ilustrada na Figura 18, com um microcontrolador, um IDE on-line e um vasto número de

bibliotecas. O microcontrolador utilizado na placa é um ARM Cortex-M3 da NXP, com uma

frequência de relógio de 96MHz, memória FLASH de 512KB e memória RAM de 32KB. Nesta

placa encontram-se também os seguintes periféricos, pinos de entrada e saída analógica, saída de

PWM, I2C, SPI, CAN, USB hoste e device e Ethernet [39].

Figura 18: [39].

A placa é programável por USB, sendo compatível com os sistemas operativos Windows, Mac OS X

e Linux sem necessitar de drivers. O programa pode ser facilmente gerado no compilador on-line do

mbed ou usando outros compiladores como o KeiluVision, Code Red ou GCC. Possui também

suporte para porta série virtual via interface por USB, permitindo a comunicação com um terminal,

Labview, Matlab, entre muitos outros que possam comunicar por porta série [39].

O uso de um compilador on-line tem vantagens e desvantagens. A vantagem é que pode aceder-se

ao compilador através de qualquer computador que disponha de internet, não sendo necessário

instalá-lo. Como desvantagem tem-se que na ausência de internet, não é possível trabalhar, bem

como que a qualidade de ligação à rede acaba por tornar todo o processo moroso. Atendendo a

estes aspetos, inicialmente fora utilizado o compilador on-line, porém com o avançar do trabalho e

com o sucessivo aumento de linhas de código optou-se por uma opção off-line, utilizado o

KeilµVision. Na Figura 19 e Figura 20 estão ilustrados os dois ambientes de programação.

38

Figura 19:Ambiente de Programação - KeiluVision

Figura 20: Ambiente de Programação – IDE on-line do mbed

39

4.2 Placa sensorial de 4DOFs

Como fora referido nos objetivos deste trabalho, este prende-se pela obtenção de um Sistema de

Navegação Inercial, com a finalidade de este ser aplicado num qualquer robot indoor de forma a

determinar a localização e orientação do mesmo em tempo real. No caso particular de um robot

indoor, se garantirmos que este se desloca num plano estável horizontal, sem qualquer movimento

no eixo do Z, poderá dispensar-se o uso do acelerómetro deste mesmo eixo. Uma vez que se

assume que o robot não sofre qualquer tipo de movimento angular em eixos que não o do Z,

poderá dispensar-se também os giroscópios dos eixos X e Y.

Partindo deste pressuposto e com base no material disponível, foi usado numa fase inicial a placa

ArduIMU Sensor Board - Six Degrees of Freedom (Main) (GPS-09372). Embora anunciada com seis

DOFs, a placa Main (sem adição de duas Breakout Boards com um giroscópio cada) dispõe

apenas de um conjunto de três acelerómetros e um giroscópio, ou seja o conjunto providencia

quatro DOFs.

Os sensores desta placa são os acelerómetros ADXL335 e o giroscópio LISY300AL, ambos

analógicos. Para utilização desta placa com os anunciados seis DOFs, é necessário adicionar as

duas referidas Breakout Boards. Na Figura 21 está ilustrada a placa sensorial segundo uma vista

superior (A) e inferior (B), bem como as suas dimensões, na Figura 22 encontra-se ilustrada a

Breakout Board.

40

Figura 21: ArduIMU Sensor Board- Top (A), Bottom (B) [40].

Figura 22: Breakout Board [40].

4.3 Interface Gráfico

Para a receção de dados, fora utilizado em primeira instância o software Terminal 1.9b – by

Br@y++, um programa que permite receber e enviar comunicação através de porta série. Para que

fosse possível visualizar os dados, traçar gráficos ilustrativos de forma a avaliar mais facilmente o

comportamento do sistema e permitir uma interação mais apelativa com o mesmo, decidiu-se

utilizar a framework QT para a criação de um interface gráfico e gestão de dados. A escolha deste

ambiente de programação da Nokia veio pela facilidade de portabilidade de código e a

familiarização com um novo ambiente de programação, sendo que, o facto de este ser um

41

ambiente de programação bastante utilizado no GAR, promovera um acrescido incentivo na

tomada de decisão. Na Figura 23 encontra-se ilustrado este ambiente de programação.

Figura 23: Ambiente Gráfico QT.

4.4 Fusão sensorial

Com o avançar do trabalho, e com uma pesquisa mais profunda acerca dos algoritmos de fusão

sensorial, chegou-se à conclusão que o problema de drift que se verifica nos giroscópios, neste

caso particular no único giroscópio que a placa sensorial dispõe, poderia ser resolvido com a

integração de magnetómetros neste projeto. Os algoritmos de fusão sensorial usam os giroscópios

como fonte para orientação, porém depois de algum tempo de estimativa da orientação, estes

sensores sofrem de drift, que consiste em um desvio entre o real e o estimado. Com o objetivo de

medir o drift realizou-se um procedimento prático, colocou-se o protótipo numa determinada

posição inicial e registou-se os valores dos respetivos ângulos. Seguidamente forçou-se um

movimento aleatório do protótipo recolocando-o por fim na sua posição inicial. Registou-se os

valores dos ângulos e comparou-se com os anteriores, resultando um valor de drift. O problema do

drift dos giroscópios é solucionado em parte através dos acelerómetros, que compensam o drift nos

ângulos pitch e roll, referentes aos eixos Y e X respetivamente, que neste caso particular não trata o

ângulo em questão, seria necessário corrigir o drift do ângulo yaw referente ao eixo Z. Esta correção

42

é possível com a adição de magnetómetros que compensam o drift do ângulo yaw. Basicamente a

ideia é adicionar a gravidade e o norte magnético à estimativa da atitude e rumo. A Figura 24, que

se encontra abaixo, ilustra os ângulos roll, pitch e yaw referenciados a um avião de forma a

simplificar o processo de compreensão do que fora até agora mencionado [41].

Figura 24: Exemplificação dos ângulos roll, pitch e yaw num objeto [42].

Com base no problema de drift dos giroscópios e atendendo ao facto de que a placa sensorial

apenas suportaria um máximo de seis DOFs, sem suporte para os magnetómetros, fora então

necessário adquirir uma nova placa.

4.5 Aquisição da placa sensorial de 9DOFs

A necessidade de adquirir uma nova placa sensorial trouxe consigo a possibilidade de alargar este

trabalho a outras aplicações, não se cingindo a robots indoor que se desloquem num plano estável

horizontal, podendo tirar partido de todas as potencialidades de um sistema de navegação inercial

de nove DOFs. Adquiriu-se a nova placa sensorial, 9 Degrees of Freedom - Sensor Stick (SEN-

10724) [43], com base na disponibilidade do produto e preço. Esta nova placa encontra-se

ilustrada na Figura 25.

43

Figura 25: Placa 9 Degrees of Freedom - Sensor Stick [43].

Com esta aquisição, fora necessário adaptar os algoritmos de forma a explorar as potencialidades

dos 9DOFs dos quais a nova placa dispõe. Esta nova placa sensorial é composta por três conjuntos

de acelerómetros, giroscópios e magnetómetros, um por cada eixo, conferindo-lhe nove DOFs. Os

acelerómetros são os ADXL345, os giroscópios os ITG-3200 e os magnetómetros são os

HMC5883L, todos eles digitais. Associado à aquisição da nova placa, houve necessidade de refazer

o protótipo inicial. Decidiu-se manter a primeira placa sensorial e juntar ao protótipo a segunda, de

forma a ser possível comparar dois diferentes sistemas sob semelhantes condições. Infelizmente o

espaço livre de que dispunha o primeiro protótipo não permitia a acoplação de uma nova placa

sensorial, tendo sido necessário refazer a montagem, da qual resultou o protótipo final ilustrado na

Figura 26.

Figura 26: Protótipo final – com cobertura (A) e sem cobertura (B).

44

Capítulo 5

Implementação

Este capítulo apresenta os passos relevantes no desenvolvimento do projeto, assim como a

implementação de interface gráfico.

5.1 Passos relevantes no desenvolvimento do trabalho

Neste subcapítulo são mencionadas as etapas da realização do projeto e consequentes problemas

que foram encontrados na sua realização. Estas etapas estão divididas em cinco partes:

A. Conexão entre o dispositivo mbed e o computador

B. Recolha dos dados

C. Calibração dos sensores

D. Tratamento dos dados

E. Evolução da Interface gráfica e do protótipo.

As quatro primeiras etapas foram realizadas de uma forma sequencial, não obstando a

modificação do protótipo (adição da placa 9DOF). A etapa ‘E’ fora realizada/alterada com a

evolução do projeto. As secções seguintes retratam cada uma destas etapas de uma forma

pormenorizada.

45

A. Conexão entre o dispositivo mbed e o computador.

O primeiro objetivo deste projeto foi estabelecer a comunicação, via porta série, entre o mbed e o

host (computador). Para tal fora necessário interagir com o ADC do mbed para a obtenção de

leituras a partir dos sensores analógicos. Neste primeira instância usou-se o software Terminal,

tendo sido posteriormente substituído por um ambiente gráfico criado a partir da Framework QT.

Nos primeiros teste realizados, verificou-se que à comunicação era corrompida quando o baudrate

tinha um valor diferente a 9600bits/s. O problema arrastou-se por algum tempo, vindo-se a

descobrir que o problema não incidia sobre o código desenvolvido, mas sim sobre a biblioteca

usada para a comunicação da porta série. A biblioteca que alegadamente suportaria diferentes

valores de baudrate, possuía erros, não lhe permitindo suportar valores de baudrate diferentes de

9600bits/s.

Este valor encontrava-se abaixo dos requisitos mínimos de comunicação e não permita terminar o

envio de dados em tempo útil. O volume de informação que era possível enviar com sucesso ficava

aquém do necessário, resultando naturalmente numa saturação do buffer quando enviado um

volume de dados superior ao que seria possível com essa velocidade.

Este problema veio a resolver-se com a substituição da biblioteca referente à comunicação da porta

série, porém o diagnóstico não fora simples.

B. Recolha dos dados

Este subtópico descreve o procedimento realizado na leitura dos sensores, quer para calibração,

quer para aquisição de dados.

Para a recolha dos dados, configurou-se um Timer e criou-se uma rotina de atendimento à

interrupção associada ao ADC para a placa com os sensores analógicos.

O Timer é comparado com o registo TimerCompareRegister e quando igualados, é comutado um

bit e reinicia à contagem. O bit que comuta dá início a uma conversão do ADC que ao concluir a

conversão gera a interrupção do ADC. Na ISR, consoante o canal que gerou a interrupção é

46

recolhido o valor e é dado início à conversão do próximo canal. Aquando da interrupção gerada

pelo último canal a amostrar, dá-se por concluída esta tarefa e o ADC é posto em modo inativo até

nova despoletagem do ADC por parte do Timer. Resultando desta forma numa sequência de

recolha de dados de tempo a tempo coordenadas pelo Timer, que assegura a temporização correta

para a realização da conversão por parte do ADC.

C. Calibração dos sensores e remoção do offset

Para a calibração dos sensores criou-se uma rotina, que consiste em calcular a média de um

conjunto de 16 amostras que têm de ser recolhidas com o sistema em repouso. Este número de

amostras deve-se a dois motivos, o primeiro pelo facto de ser aconselhado pelo fabricante a

recolha de pelo menos 10 amostras [19], o segundo pelo facto de 16 ser uma potência de 2,

facilitando o cálculo da média e respeitando a indicação do fabricante.

No caso dos sensores analógicos, a recolha tem de ser realizada em três partes, colocando um

eixo de cada vez perpendicularmente à superfície terrestre. Durante cada uma das três partes são

recolhidos os valores de todos os eixos. Assumindo que quando qualquer eixo está paralelo à

superfície terrestre deve apresentar o valor zero e quando perpendicular à mesma deve apresentar

o valor de 1G, pode calcular-se o valor de offset, bem como o fator de escala dos acelerómetros.

Assumindo que em repouso os giroscópios devem apresentar um valor igual a zero, a média

resultante da recolha em cada um dos eixos dos giroscópios traduzir-se-á no seu respetivo valor de

offset.

No caso dos sensores digitais, presentes na placa sensorial de nove DOFs, não é necessário as três

fases de recolha de dados, pois consta nos datasheets dos acelerómetros e giroscópios os valores

dos fatores de escala, bastando uma simples recolha para a obtenção dos valores de cada um dos

eixos, tendo que o valor de z terá de ser igual a 1G e os restantes iguais a zero. A diferença entre o

valor real e o ideal traduz-se no valor de offset.

No caso dos magnetómetros, que estão constantemente sujeitos ao campo magnético terrestre, é

necessário outro processo de calibração. O utilizado foi o processo sugerido pelo fabricante, para o

qual o sensor tem dois modos específicos de funcionamento: POSITIVE BIAS e NEGATIVE BIAS.

47

Nestes modos é forçada uma corrente pela camada magneto-resistiva do sensor, que gera uma

leitura equivalente a uma intensidade de fluxo magnético de 0,55 gauss. Como nesta leitura está

implícito o fluxo magnético terrestre, é feita uma segunda leitura sem a corrente de polarização.

Subtraindo o valor do campo magnético terrestre à leitura “composta”, obtém-se o resultado

referente apenas a 0,55 gauss. A implementação da rotina de calibração para os sensores digitais

não fora realizada neste ponto do trabalho, porém fica já explicitado o seu funcionamento de forma

a se compreender melhor as diferenças entre o processo de calibração de cada um dos sistemas.

Depois de calculados os valores de offset e de fator escala de cada um dos sensores, criaram-se

macros para eliminar o offset das amostras e para conversão dos dados para valores adequados,

G, rad/s e gauss. Infelizmente este processo fora rápido, pois inicialmente a interpretação dos

valores recebidos a partir da primeira placa sensorial não era clara.

Em primeiro plano e com base nos datasheets dos respetivos sensores, recolheu-se toda a

informação referente à forma como seriam interpretados os valores de tensão de modo a obter os

dados segundo as unidades desejadas. Porém os valores recolhidos não faziam qualquer sentido,

tendo-se colocando em causa se os processos de conversão dos valores de tensão em valor de

aceleração linear e velocidade angular estariam corretos.

Mais uma vez o problema não incidia sobre o que seria espectável, aliás não se tratava

propriamente de um problema, mas sim de uma característica do ADC do microprocessador. O

ADC ao converter o valor analógico para um valor digital, resultando um dado de 12bits, guarda

esse valor numa half-word (16 bits) alinhado à esquerda e preenche os quatro bits menos

significativos com zeros. Desconhecendo esta característica do ADC, partiu-se do pressuposto de

que este alinharia os bits à direita, e por isso não se compreendiam os resultados obtidos. Depois

de se averiguar as características do ADC, chegou-se à conclusão que este alinhava os dados à

direita, tendo sido resolvido o problema com um simples shift de quatro posições.

48

D. Tratamento de dados

Após realizar a aquisição de dados e a calibração dos sensores, foi necessário efetuar o tratamento

dos dados. Este tratamento foi efetuado recorrendo a uma biblioteca que implementa a fusão

sensorial de todos os sensores usando quaternions.

Esta biblioteca foi adaptada de linguagem C para linguagem C++, contudo veio a ser mais tarde

substituída por uma versão mais recente proveniente de um projeto designado FreeIMU. A nova

versão é baseada na versão anterior, que embora use a implementação de Mahoney, continua

utilizar quaternions para a computação da orientação, acrescentando a fusão sensorial dos

magnetómetros. A escolha do método de quaternions prendeu-se ao facto de este ter uma

computação mais “leve” que o método DCM. Embora mais difícil de compreender e visualizar, esta

é apenas uma diferente forma de representação.

A biblioteca usada permitiu, com base nos acelerómetros, estimar o campo gravítico terrestre e

remover o drift nos ângulos roll e pitch. Contudo era necessário eliminar o drift no ângulo yaw

recorrendo a determinação do campo magnético terrestre. Nesse sentido adquiriu-se uma nova

placa sensorial1 com nove DOFs, entre os quais três magnetómetros, permitindo assim estimar os

ângulos de Euler para fins de orientação.

Os algoritmos de fusão sensorial, cálculo de aceleração dinâmica, de velocidade e de posição

encontram-se descritos abaixo.

Algoritmo de fusão sensorial:

Update (AHRS)

{ Se (magnetómetros válidos)

{

Normalizar magnetómetros

1 Com esta alteração na modelação do projeto, foi necessário refazer os passos de aquisição dos dados e calibração dos sensores para a nova placa, o que requereu um esforço de implementação suplementar e a alteração do protótipo.

49

Estimar direção do campo magnético terrestre (quaternions)

Estimar direção do campo magnético real (magnetómetros)

Calcular o erro de orientação

}

Se (Acelerómetros válidos)

{

Normalizar acelerómetros

Estimar direção do campo gravítico (quaternions)

Calcular erro de orientação relativo ao campo gravítico

Adicionar o erro gravítico ao erro magnético

}

Se (Existir erro derivado dos acelerómetros e magnetómetros)

{

Se (ganho integrativo > 0)

{

Calcular e aplicar realimentação integrativa

}

Senão {realimentação integrativa = 0}

Aplicar ganho proporcional

}

Integrar velocidade angular

Calcular orientação do quaternion

Normalizar o quaternion

}

50

Cálculo da aceleração dinâmica (Filtro de Banda Morta):

Se (Aceleração < Banda Morta)

Então, Aceleração = 0

Se ( - Aceleração > - Banda Morta)

Então, Aceleração = 0

Se (Aceleração > Banda Morta)

Então, Aceleração = Aceleração – Banda Morta

Se ( - Aceleração < - Banda Morta)

Então, - Aceleração = - Aceleração + Banda Morta

Cálculo da velocidade:

Velocidade = Velocidade + Aceleração dinâmica * Tempo de Amostragem

Cálculo da posição:

Posição = Posição + Velocidade * Tempo de Amostragem

E. Evolução da Interface gráfica e do protótipo

De forma a simplificar a comunicação entre o protótipo e o interface gráfico do PC estabeleceram-

se formatos de tramas. O formato escolhido encontra-se na Tabela 1, sendo explicado de seguida.

Tabela 1:Exemplo de Formato de Trama

A B C D E F G H I J

Exemplo ~ %c a x %+08.3f y %+08.3f z %+08.3f \n

Estipulou-se que todas as tramas contendo medições e orientação devem ser iniciadas pelo

caracter “~” (A). Após o caracter de início de trama é enviado um segundo byte que indica o

51

tamanho da trama (B). Este byte é inserido na trama sob a forma de um caracter ASCII, tendo o

seu lugar na posição assinalada com “%c”. De seguida tem lugar o caracter que indica de que tipo

de trama se trata (C), tendo sido definido “q” o envio de um quaternion, “a” para um conjunto de

leituras de aceleração, “g” para um conjunto de leituras de velocidade angular, “c” para um

conjunto de medidas de fluxo magnético, “e” para uma trama de orientação segundo os ângulos

de Euler, “d” para aceleração dinâmica, “v” para velocidade linear e “p” para deslocamento,

(Tabela 2). Após esta informação é passado o caracter referente ao eixo (D, F, H) e o valor do

respetivo eixo (E, G, I), terminando todas as tramas com um caracter de parágrafo ”\n” (J). O

formato do valor em vírgula flutuante é descrito quanto ao número de casas decimais, zeros não

significativos à esquerda e sinal.

Na Tabela 2 constam os diferentes formatos e a descrição de cada um deles e na Tabela 3 os

respetivos comandos que são reconhecidos pelo protótipo e comandam o seu modo de

funcionamento.

Tabela 2:Formatos de Trama

~%cqq%+09.6fq%+09.6fq%+09.6fq%+09.6f\n Formato de uma trama de um quaternion

~%cax%+08.3fy%+08.3fz%+08.3f\n Formato de uma trama de aceleração nos eixos

X, Y e Z, em G

~%cgx%+08.3fy%+08.3fz%+08.3f\n Formato de uma trama de velocidade angular em

torno dos eixos X, Y e Z, em rad/s

~%ccx%+08.3fy%+08.3fz%+08.3f\n Formato de uma trama de fluxo magnético

sentido nos eixos X, Y e Z, em gauss

~%cex%+08.3fy%+08.3fz%+08.3f\n Formato de uma trama de orientação segundo

Euler, Yaw, Pitch e Roll, em graus

~%cdx%+08.3fy%+08.3fz%+08.3f\n Formato de uma trama de aceleração dinâmica

nos eixos X, Y e Z, em m/s2

~%cvx%+08.3fy%+08.3fz%+08.3f\n Formato de uma trama de velocidade linear em X,

Y e Z, em m/s

~%cpx%+08.3fy%+08.3fz%+08.3f\n Formato de uma trama de deslocamento ao longo

dos eixos X, Y e Z, em metros

52

Tabela 3:Comandos

c Ordem de calibração dos sensores

f Ordem de funcionamento no modo IMU

u Ordem de funcionamento no modo AHRS

a Pedido de disponibilização de ângulos de posição e

orientação

w Ordem de funcionamento apenas com 4DOF

e Ordem de funcionamento com 9DOF

s Ordem de suspensão de funcionamento

Com a adição da nova placa, o protótipo deixou de ser considerado um IMU e atingiu a maturidade

de um MARG, ou seja, possibilitava a leitura do campo magnético terrestre, velocidade angular e

gravidade. Após testes e avaliação do comportamento do sistema através dos valores de leitura,

foram alinhados os eixos dos sensores com os eixos deliberados para o protótipo, encontrando-se

ilustrados na Figura 27.

Foi necessário proceder ao alinhamento dos sensores da nova placa, porque estes não estão

coerentemente alinhados entre si, isto porque o fabricante não teve o cuidado de alinhar os eixos

dos sensores quando desenhou a placa.

A correção é feita por software, sendo por isso necessário reatribuir a alguns dos eixos a adequada

designação e inverter o sinal quando necessário. Este processo foi iterativo, tendo tido por base os

resultados apresentados no interface gráfico.

53

Figura 27:Eixos de Referência

Devido ao facto de nesta nova placa existirem nove saídas, foi necessário reimplementar a parte do

interface gráfico que permitia a visualização dos valores em tempo real. Tendo surgido a

necessidade de usar uma ferramenta de desenho de gráficos mais eficiente. A biblioteca utilizada

foi a QCustomPlot, uma biblioteca baseada em QT para desenho de gráficos em 2D.

Atendendo que não é desejável proceder à calibração dos sensores todas as vezes que o sistema é

inicializado, dedicou-se atenção à criação de uma rotina para salvar os valores de calibração na

memória FLASH presente no mbed. Os valores são guardados num ficheiro .txt no localfilesystem

do mbed. Criada esta rotina, toda a vez que o sistema é inicializado é feita uma tentativa de

abertura do ficheiro, caso ele exista são carregados os valores para as variáveis de eliminação de

offset e de fator de escala, caso não exista é enviada uma mensagem de alerta.

Considerando-se que se tinha um sistema MARG com alguma robustez, deu-se seguimento à

criação de um AHRS. Para isso foi implementada uma versão mais recente do código de

Madgwick, tal como fora referido anteriormente. Nesta nova versão do projeto, foram feitas

algumas alterações, para que fosse possível escolher entre a placa de seis DOFs e a de nove.

Para realimentar o sistema a uma taxa constante e contínua, procedeu-se à programação de um

Timer e subsequente rotina de atendimento à interrupção com o fim de realizar leituras a partir dos

sensores e realimentar o filtro nessa rotina. O Timer usado foi o Timer1, estando a ser utilizado o

Timer3 pelas bibliotecas do mbed, deixando livres o Timer0 e o Timer2.

Após superados os desafios inerentes a esta implementação, obteve-se um sistema AHRS capaz de

seguir em tempo real a orientação do protótipo. Para verificação dos resultados foi adicionado um

54

widget ao interface gráfico com uma reprodução em 3D do protótipo, a qual é possível ser movida

em três eixos, yaw, pitch e roll.

Uma vez que um AHRS usa um MARG, ou seja dispõe de nove DOFs dos quais três são referentes

aos magnetómetros, a orientação do sistema é absoluta (em relação ao campo magnético

terrestre) e não relativa à posição inicial do protótipo. Para ser possível uma correta visualização da

orientação do protótipo é necessário orientar o monitor, onde é mostrado o interface gráfico, de

costas para o norte magnéticos. Com este procedimento, a representação em 3D no monitor estará

corretamente alinhada com o protótipo, não dando a impressão de desalinhamento.

Seguidamente procedeu-se à determinação dos valores de ganho proporcional e integrativo com o

objetivo de o filtro compensar os erros de drift. Este processo foi iterativo, tendo-se obtido

resultados aceitáveis com um ganho proporcional de 5 e um ganho integrativo de 0,002. De notar

que o filtro duplica estes valores de ganho com o fim de serem usados no algoritmo, sendo

portanto os valores efetivos de ganho proporcional e ganho integrativo, de 10 e 0,004

respetivamente. Através da manipulação aleatória do protótipo determinou-se que este respondia

com eficiência à determinação da orientação do protótipo, dado que a posição final do

representado em 3D, reproduzia fielmente a posição real. Em regime estacionário o ganho

integrativo atua eficazmente, corrigindo pequenos desalinhamentos na ordem de um ou dois graus,

concluindo-se assim, que esta implementação é válida e eficaz para a determinação da orientação

e atitude de um corpo.

5.2 Framework QT

A ferramenta de interface gráfico foi desenvolvida usando a Framework QT. Trata-se de um

programa de software desenvolvido para visualizar em tempo real as medições e os resultados

provenientes do sistema desenvolvido (protótipo), de forma a que esta visualização seja mais

intuitiva quer para o utilizador, quer para fins de desenvolvimento, esta, sempre que possível,

apresenta gráficos e animações que ilustram as saídas/medições. A ferramenta permite ainda

comunicar com o protótipo de forma a selecionar o seu modo de operação e requisitar informação.

No fundo, a interação entre este interface gráfico e o protótipo é a mesma que se espera existir

55

entre o mesmo e uma aplicação real (ex., robot). A comunicação entre os dois intervenientes é feita

por porta série a um baurate de 15200bits/s, inicialmente fora adotado o baurate de 9600bits/s,

mas este mostrou-se incapaz de dar resposta aos tempos máximos de comunicação. Foram

utilizadas bibliotecas para a interação com a porta série, bem como para o desenho de gráficos e

animações. O algoritmo do interface gráfico, bem como alguns detalhes relevantes de

implementação serão explicados neste capítulo.

5.2.1 Aspeto geral e funcionalidades

A Figura 28 mostra o aspeto geral do interface gráfico, deste destacam-se 3 partes. Sendo a

primeira a parte da configuração, comandos da porta série e envio de comandos para o INS, uma

segunda parte referente à janela de registo de mensagens complementares e de debug e uma

última parte para fins de visualização gráfica de resultados.

Figura 28: Interface gráfico - QT

Relativamente à parte da configuração, comandos da porta série e envio de comandos para o

mbed, é possível selecionar a porta COM onde o dispositivo se encontra mapeado, bem como

definir a taxa de envio e receção de bits e proceder á conecção e desconecção da mesma. É

também apresentado um radiobutton que permite comutar entre as placas sensoriais de seis e

56

nove DOFs, botões de comandos para selecionar os modos de funcionamento, IMU ou AHRS e

proceder à calibração dos sensores e desativar o sistema a partir do botão de STOP. A Figura 29

ilustra o agora referido.

Figura 29:Interface Gráfico - Comandos

A janela de registo de mensagens, ilustrada na Figura 30 destina-se a apresentar tudo o que sejam

comunicações provenientes da porta série, mas que não sigam nenhum formato de trama pré-

estabelecido. Desta forma é possível visualizar facilmente informação relativa ao estado do sistema,

informação relativa ao processo de calibração, mensagens de debug enviadas pelo dispositivo, bem

como tramas com formato faltoso. O processo de filtragem de comunicação será explicado neste

subcapítulo na parte do algoritmo e detalhes de implementação.

57

Figura 30:Ambiente Gráfico – Janela de Registo

Na parte dos mostradores gráficos é possível visualizar gráficos com os valores em tempo real

provenientes dos sensores, uma animação que reproduz a orientação do protótipo, bem como três

gráficos complementares destinados à estimativa da aceleração dinâmica e velocidade e distância

relativa do protótipo. Todos os valores que são mostrados graficamente são também registados e

exibidos em simples caixas de texto individuais, veja-se no exemplo da Figura 31 .

Figura 31:Ambiente Gráfico - Gráfico

58

5.2.2 Algoritmo e detalhes de implementação

Neste subponto serão referenciadas as funcionalidades do ambiente gráfico, detalhes de

implementação e algoritmos. Para simplificar a compreensão, parte-se de um esquama genérico

para as pequenas partes. No seguimento do que fora mensionado, apresenta-se na Figura 32 um

fluxograma representativo do interface gráfico.

Figura 32:Fluxograma geral do Interface Gráfico QT

Passando a explicar, inicialmente são feitas as inicializações dos elementos gráficos, da porta série,

e variáveis auxiliares. Depois de concluída a inicialização do sistema, este pode seguir duas

variantes, o evento de receção de dados ou o evento de botão premido. Cada um destes despoleta

diferentes ações, no caso do evento de botão premido é procedido o envio de um comando sob

forma de carater (Envia Comando). No caso do evento de receção de dados é procedida uma

verificação do tipo de dado recebido (Dado Novo Recebido) e se por ventura se encontra completo

59

(Nova Trama Recebida). De forma a esclarecer os procedimentos em cada uma destas situações,

serão apresentados fluxogramas para cada uma delas.

No caso do Envio de Comando, o seu fluxograma é o seguinte:

Figura 33:Fluxograma – Envio de Comandos

Este fluxograma mostra quais são os carateres enviados, segundo o premir do respetivo botão.

Desta forma, com o premir do botão “Stop” é enviado o carater ‘s’, com o premir do botão

“Calibration” é enviado o carater ‘c’, e assim sucessivamente, como ilustrado a Figura 33.

No caso do Novo Dado Recebido, o seu fluxograma é o seguinte:

60

Figura 34:Fluxograma – Novo Dado Recebido

Passando a explicar, quando é recebido um dado, é feito um teste no sentido de apurar se existe

algum carater ‘~’, este carater é utilizado para diferenciar as tramas com um formato pré-definido

das tramas das que não apresentam um formato específico. Ou seja, toda a informação recebida

que não seja iniciada com um carater ‘~’ é escrita diretamente na janela de registo de mensagens.

61

No caso de contar entre os dados um carater ‘~’, então são escritos todos os dados até esse

carater na janela de registo de mensagens e feitos mais testes ao restante conteúdo. O primeiro

teste passa por determinar se o byte que contém o número de carateres que constitui a trama já se

encontra disponível, se não sai, se sim conhecendo o número de carateres testa se estes já se

encontram disponíveis. Se sim é emitido o sinal Nova Trama, que irá despoletar mais um processo,

designado no primeiro fluxograma apresentado por Nova Trama Recebida e ilustrado no fluxograma

da Figura 35 que se segue:

Figura 35:Fluxograma – Nova Trama Recebida

62

Passando a explicar, neste procedimento, primeiramente é lido um carater de forma a apurar o tipo

de dado que se está a receber. Atendendo ao facto de que se trata de tramas com formato pré-

estabelecido, realizam-se testes para identificar o respetivo formato. No caso de o carater recebido

ser um ‘a’, são desenhados os gráficos da aceleração e preenchidas as referentes caixas de texto,

no caso de o carater ser um ‘g’, são desenhados os gráficos da velocidade angular e preenchidas

as referentes caixas de texto, e assim sucessivamente como é ilustrado no fluxograma.

63

Capítulo 6

Resultados e Discussão

Neste capítulo são apresentados os resultados deste trabalho, sendo discutidos os mesmos ao

longo da exposição. De forma a simplificar a exposição dos resultados, estes serão divididos em

cinco partes e apresentados segundo a etapa de evolução do trabalho.

Em primeira instância serão apresentados alguns resultados referentes ao funcionamento do

sistema como um IMU (4DOFs), ou seja, os resultados obtidos a partir da primeira placa sensorial

no modo de funcionamento IMU.

Em segundo lugar serão apresentados os resultados referentes ao funcionamento do sistema como

um MARG (9DOFs), ou seja, os resultados obtidos com a nova placa sensorial de nove DOFs em

modo de funcionamento MARG.

Serão, posteriormente, apresentados os resultados referentes ao sistema AHRS com 4DOFs no

modo de funcionamento AHRS, apresentando vários gráficos de modo a ilustrar da melhor forma

as diferenças deste sistema em relação aos anteriores, bem como realçar as potencialidades do

mesmo.

De seguida, passa-se à exposição dos resultados referentes ao sistema MARG com 9DOFs no modo

AHRS, sendo apresentados gráficos ilustrativos com o objetivo de salientar as potencialidades deste

sistema e feita uma análise comparativa com o modo AHRS com o IMU de 4DOFs.

Por último é feita uma exposição dos resultados referentes ao sistema INS com 9DOFs e discutidos

os resultados apresentados.

64

6.1 Sistema IMU com 4DOFs

Este protótipo oferece um modo de funcionamento como IMU, isto é, apenas fornece as leituras

dos sensores para o exterior. Esta funcionalidade destina-se a aplicações que necessitem de

integrar fusão sensorial com tarefas de processamento intensivo, tais como processamento de

imagem, e o processador acoplado ao IMU não seja capaz de responder a essas necessidades.

Neste modo de funcionamento pretende-se uma elevada taxa de amostragem de forma a poder

satisfazer os requisitos de aplicações mais exigentes. Neste sentido fixou-se uma taxa de

amostragem de 200Hz. Projetos similares [6] [10] utilizam uma taxa de amostragem de 100Hz. No

entanto, uma vez que a capacidade de processamento da plataforma assim o permitia, optou-se

por dobrar essa taxa de amostragem. Uma vez que o interface gráfico não permitia (nem era

necessário) fazer um refresh aos resultados numa frequência tão alta, os dados apenas são

enviados para o mesmo a uma frequência quatro vezes inferior.

Os resultados aqui apresentados demonstram como os sensores analógicos são capazes de dar

uma resposta adequada com o sistema em repouso. São aqui apresentados gráficos ilustrativos do

comportamento do sistema durante o movimento. Foi recolhida uma imagem referente ao

movimento sobre cada um dos eixos, de forma a ser percetível a resposta do sistema. Neste

sentido encontra-se apresentado na Figura 36 uma imagem do ambiente gráfico com o sistema em

repouso, encontrando-se realçados os gráficos na Figura 37.

65

Figura 36: Ambiente Gráfico – Sistema IMU (4DOFs) em Repouso

Figura 37: Gráficos – Sistema IMU (4DOFs) em Repouso

Como é possível constatar nas figuras acima, a resposta do IMU é adequada ao estado

estacionário do protótipo, provando parte da sua fiabilidade. Na Figura 38 está ilustrado o

comportamento do IMU, quando este é submetido a sucessivas oscilações em cada um dos eixos.

Como se pode constatar na figura em questão, primeiramente é forçado um movimento no eixo X,

seguindo-se o Y e finalmente o Z. Após terminar a perturbação a resposta do IMU retorna ao estado

de repouso.

66

Figura 38:Gráfico – Perturbações em cada Eixo e Estabilização (IMU)

Na Figura 39 e Figura 40 estão ilustrados gráficos referentes à saturação dos acelerómetros e do

giroscópio, respetivamente, tendo sido obtidos através de agitação e rotação violenta do protótipo.

Figura 39:Gráfico – Saturação dos Acelerómetros do Sistema IMU (4DOFs)

Figura 40:Gráfico – Saturação do Giroscópio do Sistema IMU (4DOFs)

6.2 Sistema MARG com 9DOFs

Os resultados apresentados neste subcapítulo são referentes ao sistema MARG (9DOFs). Sendo

inicialmente demonstrado na Figura 41 o comportamento deste sistema no estado de repouso, tal

como no sistema IMU (4DOFs). Este apresenta resultados melhores que os do giroscópio da placa

anterior (níveis de ruido inferiores), demonstrando ter maior fiabilidade.

67

Figura 41:Gráfico – Sistema MARG (9DOFs) em Repouso

Na Figura 42 e Figura 43 encontram-se gráficos ilustrativos da não saturação dos acelerómetros e

giroscópios deste sistema. Tal como na placa anterior, tentou-se forçar a saturação do sistema por

meio de forte agitação e rotação do protótipo, contudo não foi possível leva-lo à saturação. Mais

uma vez esta placa de sensores diferencia-se positivamente da de 4DOFs. Nestas mesmas figuras

é possível verificar o comportamento deste sistema MARG quando submetido a perturbações em

cada um dos eixos dos acelerómetros e giroscópios, mostrando que este tem um comportamento

satisfatório.

Figura 42:Gráfico – Não Saturação dos Acelerómetros do Sistema MARG

68

Figura 43: Gráfico – Não Saturação dos Giroscópios do Sistema MARG (Eixo do Z)

6.3 Sistema AHRS com 4DOFs

Neste subcapítulo são mostrados os resultados obtidos a partir da placa sensorial de 4DOFs em

modo de funcionamento AHRS. Neste modo de funcionamento, o widget presente no ambiente

gráfico e ilustrado na Figura 44 reproduz a orientação calculada do protótipo, segundo o algoritmo

de fusão sensorial, devendo esta refletir a posição real do mesmo. Neste modo de funcionamento a

utilizar o IMU de 4DOFs após algum tempo de manipulação aleatória do protótipo num plano

horizontal o widget apresenta um desvio considerável. Este desvio é justificado, pela ausência de

eixos complementares que permitam por fusão sensorial a eliminação do drif. Para mostrar o

referido drift é apresentada na Figura 45 uma imagem do widget 3D referente à orientação do

protótipo após uma manipulação aleatória e regresso à orientação inicial. A posição inicial é

mostrada na Figura 44. Assim é possível comparar as diferenças entre a imagem apresentada

inicialmente e a final, que correspondem à mesma orientação real.

69

Figura 44:Widget - Representação Inicial

Figura 45:Widget – Representação Final da Posição Inicial

70

6.4 Sistema AHRS com 9DOFs

Neste subcapítulo são apresentados os resultados obtidos a partir da placa sensorial de 9DOFs em

modo de funcionamento AHRS. São apresentadas e enquadradas imagens do widget presente no

ambiente gráfico de forma a mostrar o comportamento do sistema e são feitas comparações com o

caso anterior, bem como destacadas as mais-valias deste.

No sentido de comparar este sistema AHRS de 9DOFs com o sistema AHRS de 4DOFs, submeteu-

se o protótipo às mesmas condições referidas no subcapítulo anterior (agitação do protótipo num

plano horizontal). Depois de algum tempo, retomou-se à sua posição inicial, verificando-se que o

erro existente é consideravelmente inferior ao que se verifica no sistema AHRS de 4 DOFs, estando

o estado final ilustrado na Figura 46.

Figura 46:widget – Representação Final (plano horizontal)

Uma vez que esta configuração de AHRS com nove DOFs permite inferir sobre a orientação

tridimensional do protótipo foi testada a eficiência do sistema utilizando o mesmo método das

configurações anteriores. Quando o protótipo sofre uma manipulação aleatória em torno dos três

71

eixos referenciais verifica-se que este, ao retomar a posição inicial apresenta um erro mínimo

(inferior a meio grau em todos os eixos), estando esta situação ilustrado na Figura 47.

Figura 47:widget – Representação Final

A Figura 48 e Figura 49 representam o sistema em funcionamento em duas posições aleatórias.

Figura 48:widget - Posição Aleatória I

72

Figura 49:widget - Posição Aleatória II

6.5 Sistema INS de 9DOFs

Tendo em conta que para o cálculo da estimativa da velocidade e posição é feita uma integração

sucessiva da aceleração, processo este que está sujeito à acumulação de grandes erros, é

imperativo que existam mecanismos de eliminação deste mesmo erro. Como tal é proibitivo o uso

do IMU de 4 DOFs para este fim, uma vez que o drift do único giroscópio existente não é

compensado.

Como a velocidade e distâncias são estimadas tendo por base a aceleração a que o sistema está

sujeito, é necessário distinguir entre as forças externas que atuam no sistema e a força da

gravidade em atuação permanente. Para isto, a biblioteca de fusão sensorial foi estendida com um

novo algoritmo que com base na orientação do protótipo, subtrai aos valores de aceleração lidos a

componente da aceleração gravítica. Obtém-se assim a designada aceleração dinâmica que por

integração origina a velocidade linear a que o corpo está sujeito e por dupla integração, o

deslocamento do corpo.

Uma vez que nem este algoritmo, o sistema não fornece mecanismos de eliminação do erro nas

duas novas componentes calculadas, era espetável a imprecisão das medidas devido à

acumulação de erro. Nestas a mais afetada é o deslocamento, uma vez que resulta de uma dupla

73

integração da aceleração. Numa tentativa de compensar estes erros, aplicou-se um filtro de

eliminação de banda morta, pretendendo-se com isto descartar leituras de aceleração que se

encontrem abaixo de um determinado limite de ruído. Com esta filtragem obtiveram-se melhorias

nos resultados (diminuição do erro da posição na ordem das centenas), contudo não foi suficiente,

uma vez que a posição estimada em regime estacionário apresenta um erro superior a um metro

ao fim de oito segundos de funcionamento, tal como confirma a Figura 50.

Figura 50:Gráfico - Erro em Regime Estacionário

Na figura observa-se o funcionamento do INS quando sujeito a variações de aceleração. É possível

visualizar a velocidade, como derivada da aceleração, bem como a sobreposição dos erros de

integração, uma vez que na parte final do teste o sistema se encontrava parado e embora a

aceleração lida seja próxima de zero, quer a velocidade quer a posição não refletem a realidade.

Figura 51:Gráfico – Funcionamento do INS

74

Capítulo 7

Conclusão

7.1 Conclusões

Nesta dissertação foi apresentado um sistema inercial para fins de orientação, baseado em

sensores de baixo custo e destinado a robots e outras plataformas móveis. O sistema criado utiliza

uma placa sensorial com nove DOFs e um microcontrolador mbed, onde corre um algoritmo de

fusão sensorial. Este algoritmo baseia-se em quaternions para estimar a orientação do protótipo.

Uma vez que a obtenção da orientação é obtida pela integração da velocidade angular lida pelos

giroscópios, o algoritmo compensa os erros de drift fundindo a orientação estimada com a direção

da força gravítica (obtido a partir dos acelerómetros) e com a orientação do campo magnético

terrestre (obtido a partir dos magnetómetros).

Foi também avaliada a possibilidade de utilizar uma placa sensorial de apenas quatro DOFs, no

entanto essa possibilidade foi inviabilizada devido à ausência de sensores na mesma, que

permitam a referida eliminação de drift.

O sistema obtido oferece três modos de funcionamento: como IMU, como AHRS e como INS. O

modo IMU, unidade de medição inercial, permite adquirir dados referente à aceleração, velocidade

angular e fluxo magnético, aquando da utilização da placa sensorial de nove DOFs, ou apenas

aceleração e velocidade angular para o caso da placa sensorial de quatro DOFs. O modo AHRS,

sistema referencial de atitude e rumo, permite a obtenção da orientação do protótipo sob forma de

75

ângulos yaw, pitch.e roll. Neste modo é possível utilizar a placa sensorial de quatro DOFs para

orientação no plano ou a placa sensorial de nove DOFs para orientação no espaço.

Foi tentada uma implementação de um sistema INS, sistema inercial de navegação, baseado na

orientação obtida pelo modo AHRS e nas leituras de aceleração. Neste modo é estimada a

aceleração dinâmica, à qual o protótipo está sujeito, e estimada a velocidade e deslocamento do

mesmo.

Foi também desenvolvido um interface gráfico em QT para fins de visualização intuitiva dos dados

de saída do protótipo.

Os resultados obtidos em modo IMU apresentam baixos níveis de ruído. Foi testada a robustez do

sistema a taxas de amostragem até 200Hz, à qual o sistema respondeu com eficácia.

No modo AHRS, os resultados obtidos foram bastante satisfatórios, pois no caso da placa de nove

DOFs o erro acumulado é compensado com sucesso, sendo este inferior a dois graus. Com a placa

sensorial de quatro DOFs, este modo de funcionamento acumula erro significativo, uma vez que

este não é compensado ao longo do processo de estimação da orientação.

Relativamente ao modo INS os resultados obtidos demonstram que a implementação não é eficaz

na determinação da velocidade e deslocamento. Devido ao processo de integração e dupla

integração da aceleração dinâmica em sobreposição aos erros inerentes ao cálculo desta, os erros

acumulados rapidamente se sobrepõem às grandezas que se pretende extrair.

Com base no trabalho realizado, pode-se afirmar que é possível obter um sistema IMU e AHRS de

aceitável precisão baseado em sensores de baixo custo. É também possível estimar o

deslocamento e velocidade de um corpo tendo por base sensores inerciais, no entanto a

implementação realizada demonstrou não ser eficiente.

7.2 Trabalho Futuro

De forma a melhorar o desempenho do sistema em modo INS, sugerem-se duas abordagens.

76

A adição de métodos complementares à determinação da posição do sistema, tais como

entradas de leituras de velocidade provenientes de fontes externas ao INS, por exemplo,

dados provenientes de encoders utilizados na locomoção dos robots terrestres, ou

barómetros para determinação da altitude no caso de plataformas aéreas. Desta forma

seria possível compensar o erro acumulado na estimativa da posição e velocidade.

A segunda abordagem, que poderá ser um complemento da primeira, visa a

implementação extensiva de filtros avançados (ex., Extended Kalman Filter) ou outras

técnicas de software que permitam eliminar o ruído nas várias fases de obtenção da

posição e velocidade, isto é, aquisição de dados, cálculo de determinação de quaternion,

determinação da aceleração dinâmica, velocidade e posição. No entanto esta última

abordagem deverá demonstrar ser pouco apropriada para sistemas com reduzida

capacidade de processamento, tais como a plataforma de desenvolvimento utilizada.

77

Referências

[1] Wikipedia, “Compass,” [Online]. Available: http://en.wikipedia.org/wiki/Compass. [Acedido

em 03 Outubro 2012].

[2] “GPSINFOS-Soluções em gps,” [Online]. Available:

http://www.gpsinfos.com.br/servicos/manutencao-de-gps. [Acedido em 13 Outubro 2012].

[3] S. O. Madgwick, Quaternions, 2011.

[4] S. O. Madgwick, “Xmegapilot,” [Online]. Available: http://code.google.com/p/xmegapilot/.

[Acedido em 21 Outubro 2012].

[5] “sf9domahrs, AHRS for Sparkfun's,” Creative Commons, [Online]. Available:

http://code.google.com/p/sf9domahrs/. [Acedido em 21 Outubro 2012].

[6] “FreeIMU: a libre 9-10 DOM/DOF inertial measurement unit,” Varesano.net, [Online].

Available: http://www.varesano.net/projects/hardware/FreeIMU. [Acedido em 21 Outubro

2012].

[7] “Arduplane,” diy drones, [Online]. Available: http://code.google.com/p/ardupilot-mega/.

[Acedido em 21 Outubro 2012].

[8] “Arducopter,” Diy Drones, [Online]. Available:

http://code.google.com/p/arducopter/wiki/ArduCopter. [Acedido em 12 Outubro 2012].

[9] J.-L. Naudin, “ArduRover,” [Online]. Available:

http://code.google.com/p/ardurover/wiki/Overview?tm=6. [Acedido em 12 Outubro 2012].

[10

]

“ardupilot-mega,” Diy Drones, [Online]. Available: http://code.google.com/p/ardupilot-

mega/wiki/Introduction. [Acedido em 21 Outubro 2012].

[11

]

M. Andrejasic, MEMS ACCELEROMETERS, Marec: University of Ljubljana Faculty for

mathematics and physics Department of physics, 2008.

[12

]

A. Lindsay, “SIC Memsic Tutorial,” Parallax Inc., 2005.

[13 S. M. Prasad, Design Simulation & Fabrication of Micromachined Acceleration Sensor,

78

] Jawaharlal Nehru Technological University, 2010.

[14

]

Endveco, “Practical understanding of key accelerometer specifications,” MEGGIT, 2011.

[15

]

M. Coope, “A Mechanical Accelerometer from 1904,” Sensorland, [Online]. Available:

http://www.sensorland.com/HistPage002.html. [Acedido em 29 Setembro 2012].

[16

]

P. L. Walter, “A HISTORY OF THE ORIGIN AND EVOLUTION OF MODAL,” Conference on

structural dynamics No20, Vols. %1 de %2ISBN 0-912053-77-1, pp. 4-7, 2002.

[17

]

J. Wagner e J. Burgemeister, Piezoelectric accelerometers theory and application, Radebul-

Germany: Metro Mess, 2001.

[18

]

M. Coope, “accelerometers, how they work,vibrations sensors,” Sensorland, [Online]. Available:

http://www.sensorland.com/HowPage003.html. [Acedido em 9 Setembro 2012].

[19

]

“Datasheet: Accelerometer ADXL335,” Analog Devices INC, 2009.

[20

]

“Datasheet: Digital accelerometer ADXL345,” Analog Devices INC, 2009.

[21

]

A. A. Trusov, Overview of MEMS Gyroscopes: History, Principles of Operations, Types of

Measurements, Irvine: Mechanical and Aerospace Engineering University of California, 2011.

[22

]

M. A. ERİŞMİŞ, “MEMS ACCELEROMETERS AND GYROSCOPES FOR INERTIAL

MEASUREMENT UNITS,” MIDDLE EAST TECHNICAL UNIVERSITY, Dissertação (Master of

science electrical and electronics engineering), 2004.

[23

]

A. Burg, A. Meruani, B. Sandheinrich e M. Wickmann, “MEMS GYROSCOPES AND THEIR

APPLICATIONS,” Northwestern University, 2004.

[24

]

T. B. Greensdale, “Gyroscopic Control of Hovercraft,” Phys. Teach., vol. 31, pp. 4-5, 1993.

[25

]

“Robotics Fundamentals Series: Gyroscopes,” National Instruments, [Online]. Available:

http://www.ni.com/white-paper/8249/en. [Acedido em 3 Outubro 2012].

[26 A. Brito, “Gimball Lock,” [Online]. Available: http://www.allanbrito.com/2007/04/18/gimbal-

79

] lock/. [Acedido em 3 Outubro 2012].

[27

]

A. Shamir, “An overview of Optical Gyroscopes Theory Pratical Aspects, Applications and Future

Trends,” 2006.

[28

]

K. R. V. a. D. Kalpana Arvind, “Fiber Optic Gyroscope,” Department of Space, Laboratory for

Electro-Optics Systems - ISRO, Peenya, Bangalore, INDIA, 2010.

[29

]

S. Nasiri, A Critical Review of MEMS Gyroscopes Technology and Commercialization Status,

Coronado Drive, Santa Clara, California: InvenSense, 2005.

[30

]

M. Höij, Investigation of Magnetic Compass, Luleå University of Technology: Dissertação

(Master of Science in Engineering Technology Space Engineering), 2011.

[31

]

S. Choi, A MICROMACHINED MAGNETIC FIELD SENSOR FOR LOW POWER ELECTRONIC

COMPASS APPLICATIONS, Georgia Institute of Technology: Dissertação(Doctor of Philosophy in

the School of Electrical and Computer Engineering), 2007.

[32

]

D. Pires, “INVENÇÕES... BÚSSOLA,” [Online]. Available:

http://danielpires.pt/2011/04/invencoes-bussola.html. [Acedido em 9 Outubro 2012].

[33

]

R. B. Langley, “Getting your bearings, The magnetic Compass and GPS,” GPS World, pp. 70-

80, setembro 2003.

[34

]

R. K. Curey, M. E. Ash, L. O. Thielman e C. H. Barker, “Proposed IEEE Inertial Systems

Terminology Standard and Other Inertial Sensor Standards,” Position Location and Navigation

Symposium, n.º ISBN: 0-7803-8416-4/04/, pp. 83-90, 2004.

[35

]

“Sensing solutions for a more sensible world,” Senlution, [Online]. Available:

http://www.senlution.com/node/6. [Acedido em 9 Outubro 2012].

[36

]

P. Slycke, “MEMS based attitude and heading reference systems,” MEMS investor journal,

[Online]. Available: http://www.memsjournal.com/2010/12/mems-based-attitude-and-

heading-reference-systems-overview-and-current-trends.html. [Acedido em 19 Outubro 2012].

[37

]

X. Kong, Inertial Navigation System Algorithms for low cost IMU, University of Sydney:

Dissertação (PHD on Mechanical and Mechatronic Engineering), 2000.

[38

]

K. Groÿekatthöfer e Z. Yoon, Introduction into quaternions for spacecraft attitude

representation, Berlin, Germany: University of Berlin, Department of Astronautics and

80

Aeronautics , 2012.

[39

]

S. Ford, “mbed Microcontrollers,” [Online]. Available: http://mbed.org/handbook/mbed-

Microcontrollers. [Acedido em 15 Outubro 2012].

[40

]

“ArduIMU Sensor Board - Six Degrees of Freedom,” Sparkfun Electronics, [Online]. Available:

https://www.sparkfun.com/products/9372. [Acedido em 16 Outubro 2012].

[41

]

“Initial implementation of a 9 DOM/DOF MARG IMU orientation filter with ADXL345, ITG3200

and HMC5843 on Arduino,” Versano.net, [Online]. Available:

http://www.varesano.net/blog/fabio/initial-implementation-9-domdof-marg-imu-orientation-

filter-adxl345-itg3200-and-hmc5843-a#comment-21534. [Acedido em 15 Outubro 2012].

[42

]

K. Stewart, “Ch11 Creating a First Person Camera,” [Online]. Available: http://www-

rohan.sdsu.edu/~stewart/cs583/LearningXNA3_lects/Lect15_Ch11_CreateFirstPersonCame

ra.html. [Acedido em 15 Outubro 2012].

[43

]

“9 Degrees of Freedom - Sensor Stick,” Sparkfun Electronics, [Online]. Available:

https://www.sparkfun.com/products/10724. [Acedido em 17 Outubro 2012].

[44

]

“FreeIMU: designing a free (as in speech) 9 DOM/DOF MARG IMU,” Varesano.net, [Online].

Available: http://www.varesano.net/blog/fabio/freeimu-designing-free-speech-9-domdof-marg-

imu. [Acedido em 21 Outubro 2012].

[45

]

“Gyro Breakout Board - LISY300AL 300°/s Right Angle,” Sparkfun Electronics, [Online].

Available: https://www.sparkfun.com/products/10122. [Acedido em 16 Outubro 2012].

[46

]

USDynamics, Spinning Mass Mechanical Gyroscopes, Amityville, New York: ISBN: 631-842-

5600, 2006.

[47

]

Piezoelectric accelerometers theory and application, Metra Mess, 2001.

top related