Adriana Isabel Martins de Amorimintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50075.pdf · Adriana...
Transcript of Adriana Isabel Martins de Amorimintranet.dei.uminho.pt/gdmi/galeria/temas/pdf/50075.pdf · Adriana...
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.