Centro de Tecnologia e Urbanismo
Departamento de Engenharia El´
etrica
Curso de Engenharia El´
etrica
Implementa¸
c˜
ao do Algor´ıtimo TRIAD
para Determina¸
c˜
ao da Atitude em um
Sistema Embarcado
Autor: Rafael Marcom
Orientador: Prof. Dr Marcelo Carvalho Tosin
Londrina, PR
25 de fevereiro de 2016
RAFAEL MARCOM
Implementa¸c˜ao do Algor´ıtimo TRIAD para Determina¸c˜ao da Atitude em um Sistema Embarcado
Trabalho de Conclus˜ao de Curso apresentado ao Departamento de Engenharia El´etrica da Uni-versidade Estadual de Londrina, como requisito parcial `a conclus˜ao do Curso de Engenharia El´ e-trica.
Orientador: Prof. Dr. Marcelo Carvalho Tosin
Londrina, PR 25 de fevereiro de 2016
RAFAEL MARCOM
Implementa¸c˜ao do Algor´ıtimo TRIAD para Determina¸c˜ao da Atitude em um Sistema Embarcado
Trabalho de Conclus˜ao de Curso apresentado ao Departamento de Engenharia El´etrica da Uni-versidade Estadual de Londrina, como requisito parcial `a conclus˜ao do Curso de Engenharia El´ e-trica.
Aprovada aprovado.Londrina de de 2015.
BANCA EXAMINADORA
Prof. Dr. MARCELO CARVALHO TOSIN - Orientador UEL
Prof. Dr. FRANCISCO GRANZIERA J ´UNIOR UEL
Prof. Dr. TAUFIK ABR ˜AO UEL
Londrina, PR 25 de fevereiro de 2016
Agradecimentos
Agrade¸co primeiramente a minha fam´ılia, Gilberto Marcom, Marli Pereira Ribeiro Marcom, Mar-celo Marcom, Daniela Marcom e Pietro Marcom Pollo, que sempre me incentivaram e me ajudaram na horas dif´ıceis, eles s˜ao a raz˜ao por eu ter chego at´e aqui.
Agradecimentos especiais aos meus amigos de curso, Diego de Freitas Marinho, Ricardo Henrique Motta e Lucas Claudino, Lucas Dias, Augusto Nery, B´arbara Sfeir, Suzana Carnielli, entre outros diversos, que muito mais que amigos, s˜ao verdadeiros irm˜aos, com quem compartilhei mais momentos de alegria do que de tristeza.
Agrade¸co ao meu orientador Marcelo Carvalho Tosin e ao pessoal do Lab T5, Francisco Granziera J´unior, Daniel Batista, a ajuda de vocˆes foi fundamental para a conclus˜ao deste trabalho.
”Os homens perdem a sa´ude para juntar dinheiro, depois perdem o dinheiro para recuperar a sa´ude. E por pensarem ansiosamente no futuro esquecem do presente de forma que acabam por n˜ao viver nem no presente nem no futuro. E vivem como se nunca fossem morrer...e morrem como se nunca tivesse vivido.” (Jim Brown)
Lista de Figuras
2.1 Dois corpos com localiza¸c˜oes distintas no espa¸co e mesma atitude . . . 4
2.2 Defini¸c˜ao de orienta¸c˜ao do sistema de coordenadas de um corpo pelos eixos u, v e w . . . 5
2.3 Representa¸c˜ao da Sequˆencia Aeroespacial dos ˆangulos de Euler. . . 7
2.4 Representa¸c˜ao gr´afica do quat´ernion. . . 10
2.5 Representa¸c˜ao gr´afica da rota¸c˜ao dada por matriz de atitude. . . 13
2.6 Diagrama do circuito interno de um magnetˆometro AMR. . . 15
2.7 Ponte de Wheatstone para leitura do campo magn´etico. . . 15
2.8 Configura¸c˜ao b´asica de um acelerˆometro. . . 17
2.9 Efeito da acelera¸c˜ao em um acelerˆometro. . . 17
3.1 ilustra¸c˜ao gr´afica dos desvios de ortogonalidade na tr´ıade. . . 19
4.1 Kit de desenvolvimento utilizado para implementa¸c˜ao do determinador de atitude. . . 24
4.2 Fluxograma do algor´ıtimo determinador de atitude implementado. . . 25
4.3 Magnetˆometro M AG3110. . . 27
4.4 Acelerˆometro LIS3DSH(Motion Sensor ). . . 28
4.5 Dados do magnetˆometro sem filtro. . . 28
4.6 Dados do acelerˆometro sem filtro. . . 29
4.7 Resposta em Frequˆencia do Filtro M´edia M´ovel. . . 30
4.8 Fluxograma do filtro MM. . . 31
4.9 Dados do magnetˆometro com filtro m´edia m´ovel com N = 4. . . 32
4.10 Dados do acelerˆometro com filtro m´edia m´ovel com N = 4. . . 32
4.11 Dados magnetˆometro sem calibra¸c˜ao. . . 34
4.12 Dados magnetˆometro calibrado e corrigido. . . 35
4.13 Compara¸c˜ao entre os dados sem e com calibra¸c˜ao. . . 35
4.14 Dados do magnetˆometro calibrado. . . 36
4.15 Dados reais do acelerˆometro. . . 36
4.16 Compara¸c˜ao entre os dados sem e com calibra¸c˜ao do acelerˆometro. . . 37
4.17 Modelo do simulink para leitura e an´alise dos dados. . . 39
4.18 Interface de anima¸c˜ao do simulink. . . 40
5.1 Aparato constru´ıdo para medidas dos ˆangulos de rota¸c˜ao. . . 41
5.2 Visualiza¸c˜ao da rota¸c˜ao em torno do eixo X. . . 42
5.3 Visualiza¸c˜ao da rota¸c˜ao em torno do eixo Y. . . 42
5.4 Visualiza¸c˜ao da rota¸c˜ao em torno do eixo Z. . . 43
Lista de Tabelas
4.1 Especifica¸c˜oes el´etricas e de opera¸c˜ao do magnetˆometro. . . 27
4.2 Especifica¸c˜oes el´etricas e de opera¸c˜ao do acelerˆometro. . . 27
4.3 Parˆametros da fun¸c˜ao wrldmagm. . . 33
4.4 Parˆametros estimados pela rotina de calibra¸c˜ao com dados do magnetˆometro. . . 34
4.5 Parˆametros estimados pela rotina de calibra¸c˜ao com dados do acelerˆometro. . . 37
5.1 Medidas dos ˆangulos de rota¸c˜ao em torno do eixo X (ϕ). . . 42
5.2 Medidas dos ˆangulos de rota¸c˜ao em torno do eixo Y (θ). . . 42
Lista de Siglas e Abreviaturas
a,b,c Fatores de escala x0, y0, z0 Offset
ˆ
u Valor estimado ˜
u Valor real
ρ, φ, λ ˆAngulos de desalinhamento da tr´ıade sensora
† Pseudo-inversa de Moore Penrose
X Matriz de amostras para calibra¸c˜ao
A,B,C,D,E,F,G,H,I,J Fun¸c˜oes n˜ao lineares dos parˆametros de calibra¸c˜ao α, β, γ, δ, , χ, µ, ι, κ Vari´aveis intermedi´arias
A Matriz Atitude
DCM Matriz Diretor Cossenos I Matriz identidade
Mref Matriz de referˆencia
Mobs Matriz de observa¸c˜ao
Q Matriz anti-sim´etrica x Operador produto vetorial |.| Operador norma
T Operador transposta −1 Operador inverso
Ψ, θ, ϕ ˆAngulos de Euler, representam Yaw, Pitch e Roll, respectivamente. R Matriz de rota¸c˜ao a partir dos ˆangulos de rota¸c˜ao
Rx
ϕ Matriz de rota¸c˜ao de φ em torno do eixo x
Rx
θ Matriz de rota¸c˜ao de φ em torno do eixo y
Rx
˘
q Quaternion
q Componente vetorial do quaternion qo Componente escalar do quaternion
TRIAD Tri-Axis Attitude Determination ri Triade de referˆencia levantada a partir de vi
si Triade de observa¸c˜ao levantada a partir de wi
u Grandeza f´ısica gen´erica
vi Proje¸c˜oes dos vetores fonte no sistema de coordenadas de referˆencia
wi Proje¸c˜oes dos vetores fonte no sistema de coordenadas do corpo
MEMS Micro-Electro-Mechanical Systems AMR Anisotropic Magneto Resistive Sensors AWGN Adittive White Gaussian Noise Csf Erro fator de escala do magnetˆometro
Cm Erro de offset do magnetˆometro
Co Erro fator de escala do magnetˆometro
Csf Erro fator de escala do acelerˆometro
Cm Erro de offset do acelerˆometro
Agradecimentos iv
Lista de Figuras vii
Lista de Tabelas viii
Lista de Siglas e Abreviaturas ix
Resumo xiii Abstract xiv 1 Introdu¸c˜ao 1 1.1 O tema . . . 1 1.2 Objetivos . . . 2 2 Revis˜ao de Literatura 3 2.1 Atitude . . . 3 2.1.1 Representa¸c˜ao da Atitude . . . 4 2.1.2 Matriz de Rota¸c˜ao . . . 4 2.1.3 Angulos de Euler . . . .ˆ 6 2.1.4 Quat´ernions . . . 8
2.1.5 Propriedades do Quat´ernion . . . 9
2.1.6 Rela¸c˜ao entre as representa¸c˜oes . . . 10
2.2 Determina¸c˜ao da Atitude . . . 12
2.2.1 O Algoritmo TRIAD . . . 12
2.2.2 Sensores MEMS . . . 14
3 Rotina de Calibra¸c˜ao 18 3.1 Calibra¸c˜ao . . . 18
3.2 Erros dos Sensores MEMS . . . 18
3.3 Rotina de Calibra¸c˜ao . . . 19
3.3.1 Estima¸c˜ao por M´ınimos Quadrados . . . 20
3.3.2 C´alculo dos Parˆametros . . . 21
4 Procedimentos Metodol´ogicos 23 4.1 Procedimentos Metodol´ogicos . . . 23
4.1.1 Determinador de Atitude . . . 23
4.1.2 Implementa¸c˜ao do Algor´ıtimo TRIAD . . . 24
4.1.3 Valida¸c˜ao do Algor´ıtimo . . . 26
4.1.4 Problemas com Ru´ıdo . . . 28
4.1.5 Calibra¸c˜ao dos Sensores . . . 32
4.1.6 Interface com o Simulink . . . 37
5 Resultados 41 5.1 Testes do Algor´ıtimo Determinador de Atitude . . . 41
6 Conclus˜ao 45 6.1 Apˆendice . . . 47
6.1.1 C´odigo Algor´ıtimo TRIAD . . . 47
6.1.2 Leitura do Magnetˆometro - M´edia M´ovel . . . 53
6.1.3 Leitura do Acelerˆometro - M´edia M´ovel . . . 55
6.1.4 C´odigo Norma . . . 58
Resumo
Este trabalho consiste na implementa¸c˜ao de um algor´ıtimo de determina¸c˜ao de atitude em sistema embar-cado, utilizando o kit de desenvolvimento Open407V-D Standard - STM32F4 Development Board. S˜ao explorados conceitos matem´aticos utilizados para expressar a atitude, como a matriz DCM, os ˆangulos de Euler e o quat´ernion, como tamb´em os tipos de sensores utilizados no trabalho em quest˜ao. Os sensores utilizados s˜ao o magnetˆometro e o acelerˆometro, ambos fabricados com a tecnologia MEMS, que s˜ao de baixo custo e tamanho. O algor´ıtimo utilizado para determinar a atitude ´e o TRIAD. O algor´ıtimo TRIAD consiste na multiplica¸c˜ao da matriz contendo os vetores de observa¸c˜ao pela matriz contendo os vetores de referˆencia, que s˜ao formados a partir da leitura dos sensores. ´E abordado tamb´em conceitos de calibra¸c˜ao dos sensores e apresentado de forma gr´afica a influˆencia dela sobre as medi¸c˜oes. O sistema dever´a ser capaz de calcular a atitude em uma taxa suficiente para descrever os movimentos de rota¸c˜ao ao longo do tempo. A atitude ser´a representada atrav´es de uma interface com o simulink, onde ´e poss´ıvel visualizar os ˆangulos de rota¸c˜ao e uma anima¸c˜ao em tempo real.
Palavras-Chave:Determina¸c˜ao da Atitude, Sensores MEMS, TRIAD, STM32F407 ARM Cortex M4.
Abstract
This work is the implementation of an attitude determination algotithm in an embedded system using the development kit Open407V-D Standard - STM32F4 Development Board. Exploring mathematical concepts used to express the attitude, as DCM matrix, Euler angles and quaternion, as well as the types of sensors used. The sensors used are the magnetomoter and the accelerometer, both manufactured using MEMS technology wich are low cost and size. The algorithm used to determine the attitude is the TRIAD. The TRIAD algorithm constitutes in the multiplication the matrix containing the observation vectors by the matrix containing the reference vectors, which are formed from the sensors reading. Data are presented in a graphical form to demonstrate the influence of calibration in measurements. The system should be able to calculate the attitude at sufficient rate to describe the rotation movement over time. The attitude will be presented graphically using MatLab Simulink, where is possible to view an animation representing the calculated rotations in real time.
Introdu¸
c˜
ao
1.1
O tema
Saber determinar a orienta¸c˜ao de um corpo se faz necess´ario nas mais diversas ´areas de atua¸c˜ao, como por exemplo, em navega¸c˜ao, n˜ao basta saber somente a localiza¸c˜ao de um sat´elite, um avi˜ao ou um submarino, ´e necess´ario saber para que dire¸c˜ao ele est´a apontando.
A orienta¸c˜ao est´a presente tamb´em na ´area de biom´edica, existem dispositivos capazes de mo-nitorar ou auxiliar um deficiente f´ısico, na industria, est´a presente em robˆos, aplica¸c˜oes em realidade virtual, v´ıdeo games e o mais comum, de acesso a todos, o celular, onde alguns aplicativos necessitam da orienta¸c˜ao do aparelho.
A orienta¸c˜ao no espa¸co pode se expressa matematicamente por uma matriz de rota¸c˜ao que permita realizar a transforma¸c˜ao entre sistemas de coordenadas associados a diferentes sistemas de referˆencia. A orienta¸c˜ao de um corpo n˜ao est´a relacionada a sua posi¸c˜ao e pode ser estudada e determinada de forma independente (GRANZIERA JR.; LOPES; TOSIN,2007). A orienta¸c˜ao de um corpo no espa¸co tamb´em ´e chamada de atitude.
Para determinar a atitude de um corpo em trˆes dimens˜oes, s˜ao necess´arios pelo menos dois vetores de referˆencia em dire¸c˜oes distintas.
Alguns sensores tem como base, princ´ıpios f´ısicos sentidos pelo deslocamento da in´ercia, como os acelerˆometros e girˆometros. Outros se baseiam em referenciais como o campo geomagn´etico, o Sol e as estrelas.
Para este trabalho, ser´a utilizado como sensores, uma tr´ıade de magnetˆometros e uma tr´ıade de acelerˆometros. Estes sensores foram escolhidos por ter suas referˆencias bem estabelecidas, no caso, o campo magn´etico da terra e a for¸ca da gravidade, que ´e o suficiente para a implementa¸c˜ao de um determinador de atitude tridimensional em sistema embarcado.
Ambos sensores s˜ao do tipo MEMS(Micro-Electro-Mechanical Systems). Estes tipos de sensores oferecem vantagens em tamanho, potˆencia e custo, por´em em termos de desempenho, ainda s˜ao inferiores quando comparados com seus equivalentes mecˆanicos. Em alguns casos, esta perda j´a n˜ao ´e considerada cr´ıtica, e os dispositivos MEMS est˜ao cada vez mais presentes em aplica¸c˜oes corriqueiras(BATISTA,2013).
Estes sensores utilizados na determina¸c˜ao da atitude, n˜ao s˜ao perfeitos, eles s˜ao corrompidos por erros. Por isso, ´e de extrema importˆancia o desenvolvimento de modelos matem´aticos para a corre¸c˜ao dos dados dos sensores, isto inclui conhecer as fontes de erros, realizar uma rotina de calibra¸c˜ao que determine os coeficientes de erro e, por fim, processar os dados medidos e remover os erros existentes (SANTANA,2009).
O algoritmo que ser´a utilizado para determinar a atitude de um corpo ´e o TRIAD, que ´e um m´etodo simples baseado somente em dois vetores e pode ser eficientemente implementado em sistemas embarcados.
1.2
Objetivos
O objetivo deste trabalho ´e a implementa¸c˜ao do algor´ıtimo TRIAD utilizando o kit de desenvolvimento Open407V-D Standard - STM32F4 Development Board e implementar uma interface gr´afico com o uso do simulink onde ser´a poss´ıvel visualizar a atitude em tempo real por meio de uma anima¸c˜ao, assim como os ˆangulos de Euler.
Revis˜
ao de Literatura
2.1
Atitude
A atitude ´e a orienta¸c˜ao tridimensional de um corpo em rela¸c˜ao a alguma referˆencia, ou seja, como o corpo est´a posicionado no espa¸co.
Determinar a atitude de um corpo ´e determinar a rota¸c˜ao que deve ser aplicada sobre o sistema de coordenadas de referˆencia para que o mesmo coincida com o sistema de coordenadas definido no corpo. No entanto, ao contr´ario do que pode parecer em um primeiro momento, a atitude n˜ao define onde ele est´a posicionado. Assim, dois corpos podem ter a mesma atitude e possuir localiza¸c˜oes diferentes no espa¸co. Percebe-se ent˜ao, que a atitude est´a diretamente relacionada com a rota¸c˜ao dos corpos e n˜ao com a transla¸c˜ao. Para entender essa afirma¸c˜ao, pode-se pensar em dois corpos iguais que possuem localiza¸c˜oes distintas no espa¸co. Se pud´essemos fotografar esses dois corpos, seguindo um mesmo referencial, e colocar uma imagem sobreposta `a outra poder´ıamos definir que eles possuem a mesma atitude se e somente se as imagens estivessem perfeitamente casadas (SANTANA,2009).
Figura 2.1: Dois corpos com localiza¸c˜oes distintas no espa¸co e mesma atitude Ei xo Y Eixo X FONTE: Autor.
2.1.1
Representa¸
c˜
ao da Atitude
O problema b´asico da determina¸c˜ao de atitude ´e especificar a orienta¸c˜ao de uma tr´ıade nas coordenadas do corpo, os vetores de observa¸c˜ao em rela¸c˜ao a uma tr´ıade de coordenadas de referˆencia e os vetores de referˆencia.
A orienta¸c˜ao de um corpo pode ser representado de diversas formas matem´aticas, as mais comuns s˜ao:
• Matriz de Atitude; • ˆAngulos de Euler; • Quat´ernion;
´
E poss´ıvel converter as formas de representa¸c˜ao, quat´ernions, ˆangulos de Euler e matriz de rota-¸
c˜ao. No entanto, essas representa¸c˜oes podem ser utilizadas para modelar a dinˆamica das rota¸c˜oes, pois existe uma ´algebra espec´ıfica para cada uma delas.
2.1.2
Matriz de Rota¸
c˜
ao
A rota¸c˜ao dos trˆes eixos de atitude ´e baseada na matriz de atitude, tamb´em conhecida como matriz de cossenos diretores (DCM). Na figura 2.2, os eixos 1,2 e 3 s˜ao vetores unit´arios definindo uma tr´ıade ortogonal. Essa tr´ıade ´e escolhida como um referencial inercial. Adjunto a tr´ıade tem um corpo em movimento definido pelos seguintes vetores unit´arios, u, v e w. A rota¸c˜ao da matriz A ´e definida da seguinte maneira.
Figura 2.2: Defini¸c˜ao de orienta¸c˜ao do sistema de coordenadas de um corpo pelos eixos u, v e w
2
3
u
v
w
FONTE: Adaptado de (TAKAHASHI,2010)
A = u1 u2 u3 v1 v2 v3 w1 w2 w3
Obtido a matriz A, u1, u2 e u3 s˜ao componentes do vetor u ao longo do sistema de referˆencia ortogonal
u = [u1,u2,u3]T. De modo similar, v e w tamb´em tem componentes v1, v2e v3e w1, w2e w3ao longo dos
mesmo eixos de referˆencia v = [v1,v2,v3]T e w = [w1,w2,w3]T. A matriz diretor de cossenos ´e tamb´em
chamada de matriz de atitude e tem uma importante propriedade de mapeamento de vetores de referˆencia de observa¸c˜ao.
Os elementos da matriz n˜ao s˜ao independentes, ou seja, a matriz apresenta informa¸c˜oes redun-dantes. Ainda, como os vetores s˜ao unit´arios e ortogonais, pode-se estabelecer as seguinte rela¸c˜oes.
u21+ u22+ u23= 1 (2.1)
u1v1+ u2v2+ u3v3= 0 (2.2)
A DCM possui tamb´em a propriedade de transformar vetores no sistema de coordenadas de referˆencia para o sistema de coordenadas de corpo. Suponha um vetor aref = [a1, a2, a3]T, com suas
componentes baseadas no sistema de referˆencia. De acordo com a equa¸c˜ao 2.3, multiplicando a DCM pelo vetor aref, o resultado ser´a o pr´oprio vetor a, por´em agora com suas componentes projetadas no
sistema de coordenadas do corpo, obtendo portanto o vetor acorpo. Aaref = u1 u2 u3 v1 v2 v3 w1 w2 w3 a1 a2 a3 = u · aref v · aref w · aref = au av aw = acorpo (2.3)
O mesmo vale para o caminho inverso. Existe uma matriz A−1 que multiplicando por acorpo e
utilizando algumas das propriedades das matrizes ortogonais, ´e poss´ıvel encontrar aref, como mostrado
nas equa¸c˜oes a seguir (CARVALHO NETO,2012).
Aaref = acorpo
A−1Aaref = A−1Aacorpo
Iaref = A−1acorpo
aref = A−1acorpo (2.4)
2.1.3
Angulos de Euler
ˆ
A representa¸c˜ao por ˆangulos de Euler permite uma representa¸c˜ao mais visual e intuitiva da atitude. Os trˆes ˆangulos de Euler representam ˆangulos de rota¸c˜ao em cada um dos eixos permitindo descrever uma atitude.
A sequˆencia mais popular dos ˆangulos de Euler ´e a Sequˆencia Aeroespacial que ´e constitu´ıda por uma rota¸c˜ao Ψ em torno de z denominado de guinada(yaw ), outra de θ em torno de y chamada de rolagem(pitch) e uma rota¸c˜ao ϕ em torno de x denominada arfagem(roll ) (GRANZIERA JR.,2006).
Cada um dos ˆangulos da sequˆencia possui uma faixa de atua¸c˜ao. Essas faixas s˜ao:
Ψ = [−π, +π] θ = [−π 2, +
π
2] ϕ = [−π, +π] (2.5)
ˆ
Angulos de Euler n˜ao s˜ao t˜ao convenientes para c´alculos num´ericos quanto quat´ernions, por exigirem o uso de fun¸c˜oes trigonom´etricas, mas seu significado geom´etrico ´e mais aparente e intuitivo. S˜ao ´uteis para an´alise, especialmente para encontrar solu¸c˜oes fechadas para equa¸c˜oes de movimentos em casos simples.
Figura 2.3: Representa¸c˜ao da Sequˆencia Aeroespacial dos ˆangulos de Euler.
Z (yaw) X(roll)
Y(pitch)
FONTE: Autor.
A matriz de rota¸c˜ao que relaciona o sistema de coordenadas de referˆencia de um corpo com o sistema de coordenadas de observa¸c˜ao atrav´es dos ˆangulos de Euler ´e descrito pela seguinte matriz de atitude: A = R = RxϕRyθRzΨ (2.6) onde Rxϕ= 1 0 0 0 cosϕ senϕ 0 −senϕ cosϕ (2.7) Ryθ = cosθ 0 −senθ 0 1 0 senθ 0 cosθ (2.8) RzΨ= cosΨ senΨ 0 −senΨ cosΨ 0 0 0 1 (2.9) portanto
A = R = RxϕRyθRzΨ= Rxϕ cos θ 0 − sin θ 0 1 0 sin θ 0 cos θ cos Ψ sin Ψ 0 − sin Ψ cos Ψ 0 0 0 1 (2.10) R = 1 0 0 0 cos ϕ sin ϕ 0 − sin ϕ cos ϕ
cos θ cos Ψ cos θ sin Ψ − sin θ
− sin Ψ cos Ψ 0
sin θ cos Ψ sin θ sin Ψ cos θ R =
cos θ cos Ψ cos θ sin Ψ − sin θ
(− cos ϕ sin Ψ + sin ϕ sin θ cos Ψ) (cos ϕ sin Ψ + sin ϕ sin θ cos Ψ) sin ϕ cos θ (sin ϕ sin Ψ + cos Ψ sin θ cos Ψ) (− sin ϕ cos Ψ + cos ϕ sin θ sin Ψ) cos ϕ cos θ
(2.11)
A matriz R ´e a matriz DCM representada pelos ˆangulos de Euler da sequˆencia aeroespacial. ´E como se ela representasse uma ´unica rota¸c˜ao em torno de um ´unico eixo e que leva o corpo do sistemas de coordenadas de referˆencia para o sistema de coordenadas atual (GRANZIERA JR.).
Problemas com ˆangulos de Euler
O primeiro deles ´e a divis˜ao por zero, em equa¸c˜oes envolvendo fun¸c˜oes trigonom´etricas. Por exemplo, se cosθ = 0 [θ = ±π/2], as fun¸c˜oes
tan θ = sin θ
cos θ sec θ = 1
cos θ (2.12)
resultam em valores indefinidos.
2.1.4
Quat´
ernions
O quat´ernion, conhecido tamb´em como n´umero hipercomplexo, como o pr´oprio nome sugere, ´e um ele-mento tetra-dimensional, ele define um eleele-mento em R4. O quat´ernion pode operar uma rota¸c˜ao da
mesma forma que uma matriz de rota¸c˜ao, por esse fato, o quat´ernion tamb´em ´e capaz de representar a atitude (KUIPERS,1999).
O quat´ernion pode ser representado da seguinte forma.
˘
q = (q0, q1, q2, q3) (2.13)
Onde q0, q1, q2 e q3 s˜ao simplesmente n´umeros reais ou escalares.
Como alternativa de representa¸c˜ao de um quat´ernion, q0 ´e associado a um n´umero real, uma
parte escalar, e q associado a um vetor ordin´ario em R3, chamada de.
i,j e k s˜ao bases ortonormais em R3.
A defini¸c˜ao do quat´ernion ent˜ao ´e dado da seguinte forma:
˘
q = q0+ q = q0+ iq1+ jq2+ kq3 (2.15)
Em suma, q0 ´e chamado de parte escalar do quat´ernion e q ´e chamado de parte vetorial do
quat´ernion. Os escalares q0, q1, q2 e q3 s˜ao chamados componentes do quat´ernion.
˘ q = q0 q1 q2 q3 = q0 q (2.16)
As trˆes componentes vetoriais do quat´ernion representam um vetor eixo de rota¸c˜ao e o quarto componente escalar representa o ˆangulo de rota¸c˜ao ao redor deste eixo (KUIPERS,1999).
2.1.5
Propriedades do Quat´
ernion
Complexo ConjugadoUm importante conceito alg´ebrico dos quat´ernios ´e seu complexo conjugado. O complexo conjugado do quat´ernion apresentado na equa¸c˜ao 2.15 ´e denotado da seguinte forma:
˘
q∗= q0− q = q0− iq1− jq2− kq3 (2.17)
Assim como nos n´umeros complexos, a parte escalar e vetorial de um quat´ernion pode ser extra´ıda fazendo (KUIPERS,1999). ˘ q + ˘q∗ 2 = q0 (2.18) ˘ q − ˘q∗ 2 = q (2.19)
Norma do Quat´ernion
A norma do quat´ernion q ´e denotada pelo escalar N (q), onde
N (˘q) =pq˘∗q˘ ou N2(˘q) = ˘q∗q˘ (2.20)
Quat´ernion Unit´ario
O quat´ernion unit´ario, ˘q, tem a norma igual a 1, isto ´e
Quat´ernion Inverso
Pela defini¸c˜ao de inverso tem-se que, ˘q−1q = ˘˘ q ˘q−1 = 1 . Ent˜ao, multiplicando ambos os lados pela equa¸c˜ao 2.17, a express˜ao pode ser reescrita da seguinte forma.
˘ q∗q ˘˘q−1= N2(˘q)˘q−1= ˘q∗ (2.22) do qual resulta ˘ q−1= q˘ ∗ N2 = ˘ q∗ |˘q|2 (2.23)
e, se q ´e um quat´ernion unit´ario, ent˜ao
˘
q−1= ˘q∗ (2.24)
A seguir ser´a apresentado uma figura contendo a representa¸c˜ao gr´afica do quat´ernion.
Figura 2.4: Representa¸c˜ao gr´afica do quat´ernion.
X
Z
Y
Eixo de Rotação Plano de Rotaçãoq
q
0FONTE: Adaptado de (TAKAHASHI,2010)
2.1.6
Rela¸
c˜
ao entre as representa¸
c˜
oes
Conhecendo-se as diferentes representa¸c˜oes, ´e poss´ıvel estabelecer uma rela¸c˜ao entre elas. ´
E poss´ıvel expressar a matriz DCM a partir dos quat´ernions da seguinte forma (TAKAHASHI,2010):
A(q) = (q20− q2)I + 2qqT− 2q
4Q (2.25)
Q = 0 −q3 q2 q3 0 −q1 −q2 q1 0 (2.26)
Os ˆangulos de Euler podem ser obtidos a partir dos elementos da matriz DCM, na representa¸c˜ao de Euler (Matriz R, 2.11). Assim:
θ = arcsen(A23) (2.27)
ϕ = −arctan(A21/A22) (2.28)
Ψ = arctan(A13/A33) (2.29)
A equa¸c˜ao 2.27 possui uma ambiguidade em θ, correspondente `a fun¸c˜ao senθ ser positiva ou negativa. A solu¸c˜ao usual para esta ambiguidade ´e selecionar −90o≤ θ ≤ 90o(TAKAHASHI,2010).
2.2
Determina¸
c˜
ao da Atitude
2.2.1
O Algoritmo TRIAD
O algoritmo TRIAD (Tri-Axis Attitude Determination) foi introduzido por Black em 1964, trata-se de um m´etodo alg´ebrico de determinar a atitude. N˜ao s˜ao necess´arias fun¸c˜oes trigonom´etricas inversas, n˜ao h´a ambiguidade e os requisitos computacionais s˜ao m´ınimos.
O algoritmo consiste na multiplica¸c˜ao da matriz contendo os vetores de observa¸c˜ao pela matriz
contendo os vetores de referˆencia. A simplicidade de algoritmo o torna interessante para processamento embarcado (TAKAHASHI,2010).
Dado dois vetores de referˆencia v1 e v2, ambos proje¸c˜oes dos vetores fonte no sistema de coordenadas
inercial e seus respectivos vetores unit´arios de observa¸c˜ao, w1 e w2que s˜ao proje¸c˜oes dos vetores fontes
do sistema de coordenadas do corpo, ´e desej´avel encontrar uma matriz A que satisfa¸ca, ainda que de modo aproximado as seguintes equa¸c˜oes (GRANZIERA JR.,2006).
Av1= w1 Av2= w2 (2.30)
Para encontrar A inicialmente constroem-se dois conjuntos de trˆes vetores ortogonais unit´arios ou tr´ıades, um baseado nos vetores de referˆencia e outro baseado nos vetores de observa¸c˜ao (GRANZIERA JR.; LOPES; TOSIN,2007). r1= v1 r2= (v1× v2) | v1× v1| r3= v1× (v1× v2) | v1× v1| (2.31) s1= w1 s2= (w1× w2) | w1× w1| s3= w1× (w1× w2) | w1× w1| (2.32) H´a somente uma matriz que A que rotaciona ri para si, ou seja, que satisfaz a:
Ari= si, i = 1, 2, 3. (2.33)
A figura 2.5 mostra a rota¸c˜ao produzida pela matriz de atitude. Os vetores ri da referˆencia s˜ao rodados
Figura 2.5: Representa¸c˜ao gr´afica da rota¸c˜ao dada por matriz de atitude. r3 X Z X Z r1 r2 s1 s3 s2
A
Y Y ZFONTE: Adaptado de (GRANZIERA JR.; LOPES; TOSIN, 2007).
Dados os vetores de ri, ´e poss´ıvel agrup´a-los para construir uma matriz de referˆencia:
Mref =
r1 ... r2 ... r3
Da mesma forma, a matriz de observa¸c˜ao pode se constru´ıda por si:
Mobs=
s1 ... s2 ... s3
Nota-se ri e si s˜ao matrizes de dimens˜ao 3 × 1, a equa¸c˜ao 2.33 pode ser reescrita de modo a associar a
matriz de atitude `as matrizes Mref e Mobscomo:
AMref = Mobs (2.34)
ora, as matrizes Mref e Mobs satisfazem as seguintes condi¸c˜oes:
MobsMTobs= s1sT1 s2sT1 s3sT1 s1sT2 s2sT2 s3sT2 s1sT3 s2sT3 s3sT3 = 1 0 0 0 1 0 0 0 1 = I3×3 MrefMTref = r1rT1 r2rT1 r3rT1 r1rT2 r2rT2 r3rT2 r1rT3 r2rT3 r3rT3 = 1 0 0 0 1 0 0 0 1 = I3×3
MTobs= M−1obs MTref = M−1ref (2.35) Desta forma ´e poss´ıvel isolar a matriz de atitude multiplicando ambos os lados da equa¸c˜ao 2.35 por MTref. Desta forma a matriz de atitude ser´a dada por:
A = MobsMTref (2.36)
A equa¸c˜ao 2.36 representa a solu¸c˜ao do algoritmo TRIAD para a atitude. Outra forma para express´a-la ´e: A = 3 X i=1 sirTi (2.37)
2.2.2
Sensores MEMS
Micro Eletro-Mechanical Systems(MEMS) s˜ao sistemas mecˆanicos fabricados na escala de circuitos integrados(CIs), o que permite que sejam embarcados em CIs para composi¸c˜ao de sensores. Sensores MEMS apresentam baixo custo e escala.
Tipos de Sensores
Existem duas classes de sensores utilizados na determina¸c˜ao de atitude de um corpo: os inerciais e os de referˆencia. Os inerciais podem ser utilizados para medir efeitos como acelera¸c˜ao, rota¸c˜oes, vibra¸c˜oes, impactos e outras, j´a os de referˆencia medem a dire¸c˜ao de um vetor qualquer conhecido, como o campo magn´etico terrestre.
Existe v´arios tipos de sensores com as mais diversas fontes de referˆencia. Por exemplo, o sensor solar, muito utilizado na determina¸c˜ao de atitude em miss˜oes espaciais, ´e capaz de determinar o apontamento para o Sol atrav´es de uma cˆamera e medir a dire¸c˜ao na qual a cˆamera ´e apontada. H´a tamb´em os sensores de estrelas, que s˜ao dispositivos que conseguem detectar um conjunto de estrelas e a partir delas indicar o seu apontamento (KANDIYIL,2009).
Magnetˆometro
Magnetˆometros s˜ao sensores que medem a dire¸c˜ao e o m´odulo de campos magn´eticos. S˜ao praticamente essenciais em qualquer sistema de navega¸c˜ao.
Diferentes magnetˆometros operam baseados em diferentes princ´ıpios. Dentre as v´arias tecnologias utilizadas na constru¸c˜ao de magnetˆometros, uma das que resulta em sensores de baixo custo e desempenho adequado ´e a AMR((Anisotropic Magneto-Resistive Sensors), onde o sensor ´e constru´ıdo utilizando uma liga de ferro-n´ıquel, cuja resistˆencia el´etrica ´e dependente da presen¸ca de campos magn´eticos em uma dire¸c˜ao espec´ıfica (TORMENA JR,2010).
A resposta deste dispositivo ´e corrompida por erros, que podem ser modelados por: • Erro de fator de escala, Cf s.
• Erro de alinhamento dos eixos, Cm.
• Erro de offset,Co.
O modelo matem´atico de medida para um magnetˆometro deste tipo pode ser escrito como:
bout= CmCsfCsi(bin+ Co) (2.38)
Onde bout ´e um vetor 3 x 1 que representa a sa´ıda anal´ogica do sensor, bin´e o vetor 3 x 1 que
representa o campo magn´etico presente.
Conhecendo-se todos os erros inerentes ao sensor, ´e poss´ıvel empregar uma t´ecnica de calibra¸c˜ao para minimizar os erros de medi¸c˜ao e obter um valor mais preciso da atitude.
Princ´ıpio de funcionamento do Magnetˆometro
A figura 2.6 ilustra a constru¸c˜ao de um magnetˆometro AMR. Cada uma das pontes resistivas est´a constru´ıda em um plano, onde os trˆes planos s˜ao mutualmente ortogonais e cada plano corresponde a dire¸c˜ao onde o elemento sensor ´e sens´ıvel ao campo magn´etico.
A seguir ser´a apresentado um diagrama esquem´atico do circuito interno do magnetˆometro.
Figura 2.6: Diagrama do circuito interno de um magnetˆometro AMR.
FONTE:(TORMENA JR,2010)
A seguir ser´a apresentado um diagrama da ponte de Wheatstone resistiva.
Figura 2.7: Ponte de Wheatstone para leitura do campo magn´etico.
Quando um campo magn´etico surge na ponte resistiva, pela caracter´ıstica do material, ele altera a sua resistˆencia e desbalanceia a ponte, gerando um sinal de tens˜ao que ´e convertido em unidade de campo magn´etico.
Acelerˆometro
Acelerˆometros medem a for¸ca espec´ıfica externa (for¸ca por unidade de massa) que age sobre uma massa de prova interna conectada por uma suspens˜ao, formando um sistema massa-mola. Quando uma for¸ca de campo ou for¸ca de acelera¸c˜ao ´e aplicada ao acelerˆometro, a massa de prova sofre um deslocamento proporcional `a for¸ca espec´ıfica. Este deslocamento interfere no estado el´etrico de algum componente do sensor, fazendo com que a sa´ıda varia em fun¸c˜ao da for¸ca espec´ıfica aplicada ao sensor. A sa´ıda de um acelerˆometro ´e composta por dois termos aditivos, o primeiro proporcional `a atra¸c˜ao gravitacional e o segundo proporcional `a acelera¸c˜ao linear do sensor. Um acelerˆometro em repouso apresenta sa´ıda proporcional `a for¸ca de atra¸c˜ao gravitacional. Em sistemas de estimativa da atitude de corpos com posi¸c˜ao fixa acelera¸c˜ao linear nula, acelerˆometros podem ser utilizados para medir o vetor de atra¸c˜ao gravitacional terrestre.
Esses sensores podem ser utilizados para medi¸c˜oes inerciais, entretanto, devido ao campo gravitacional da Terra, o mesmo pode ser utilizado par obten¸c˜ao de vetores de referˆencia.
O acelerˆometro fabricado com a tecnologia MEMS ´e um dispositivo cujo princ´ıpios de funcionamento ´e muito simples.
A resposta deste dispositivo, assim como no magnetˆometro, ´e corrompida por erros que podem ser modelados por:
• Erro de fator de escala, Esf.
• Erro de alinhamento dos eixos, Em.
• Erro de offset,Eo.
• Erro por varia¸c˜oes na acelera¸c˜ao, δA.
Combinando-se as fontes de erro, o modelo do acelerˆometro ´e expresso pela equa¸c˜ao 2.39 (SANTANA,2009).
ˆ
A = EsfEmA + δA + Eo (2.39)
Conhecendo-se todos os erros inerentes ao sensor, ´e poss´ıvel empregar alguma rotina de calibra¸c˜ao para minimizar os erros de medi¸c˜ao e obter um valor mais preciso da atitude.
Princ´ıpio de funcionamento do Acelerˆometro
A tecnologia permite executar estruturas suspensas de sil´ıcio que s˜ao ligados ao substrato em alguns pontos chamados de ˆancoras e s˜ao livres para se mover na dire¸c˜ao da acelera¸c˜ao sentida. Para ser compat´ıvel com as t´ecnicas de encapsulamento, uma capsula ´e posta sobre o elemento sensor para evitar o bloqueio das partes m´oveis durante a fase do encapsulamento pl´astico.
Quando uma acelera¸c˜ao ´e aplicada ao sensor, a massa de prova desloca da sua posi¸c˜ao inicial, causando um desbalanceamento na meia-ponte capacitiva. Esse desbalanceamento ´e medido usando a integra¸c˜ao da carga em resposta ao pulso de tens˜ao aplicado no capacitor.
Em repouso, o valor nominal do capacitor ´e da ordem de alguns pF e quando uma acelera¸c˜ao ´e aplicada, a m´axima varia¸c˜ao da carga capacitiva atinge fF.
A seguir ser´a apresentado uma imagem ilustrando o funcionamento do acelerˆometro.
Figura 2.8: Configura¸c˜ao b´asica de um acelerˆometro.
FONTE: (TORMENA JR,2010)
A seguir ser´a apresentado uma imagem mostrando o efeito da acelera¸c˜ao em um acelerˆometro.
Figura 2.9: Efeito da acelera¸c˜ao em um acelerˆometro.
FONTE: Adaptado Internet1.
Na figura 2.9, as placas fixas representam uma placa do capacitor, e a massa a outra placa. Quando o sistema sente uma acelera¸c˜ao, a massa se movimenta, alterando o valor da capacitˆancia. Essa diferen¸ca de capacitˆancia ´e convertida em unidade de acelera¸c˜ao.
Cap´ıtulo 3
Rotina de Calibra¸
c˜
ao
3.1
Calibra¸
c˜
ao
Como visto anteriormente, os sensores utilizados para a determina¸c˜ao da atitude, s˜ao corrompidos por erros.
Devido a esses erros, se faz necess´ario empregar uma rotina de calibra¸c˜ao no sistema, pois os erros dos sensores s˜ao tidos como nulos nos algor´ıtimos determinadores de atitude. Uma tr´ıade descalibrada, interfere na determina¸c˜ao do valor real a ser medido.
Para minimizar os erros de medidas dos sensores e ter uma melhor acur´acia na determina¸c˜ao da atitude, ´e necess´ario realizar uma rotina que determine os coeficientes de erro, que processe os dados medidos e que retorne os parˆametros de calibra¸c˜ao.
3.2
Erros dos Sensores MEMS
Assim como todo sensor, os sensores MEMS apresentam erros em suas medidas. As principais fontes de erros s˜ao a indetermina¸c˜ao do fator escala, bias, desalinhamento e ru´ıdo.
O fator de escala ´e a raz˜ao entre a entrada e a sa´ıda do sensor. Normalmente assume-se que o fator de escala ´e constante e igual para todos os eixos, mas na pr´atica, o fator de escala pode variar em fun¸c˜ao da entrada, variar no tempo e com a temperatura de opera¸c˜ao de forma independente para seus 3 eixos de medida. O bias ´e um erro aditivo constante que desloca a sa´ıda em uma dire¸c˜ao, de forma que para uma entrada nula e sa´ıda ser´a igual ao bias.
O desalinhamento ´e o erro obtido ao assumir que sensores triaxiais apresentam eixos de medida perfeitamente perpendiculares enquanto os ˆangulos reais s˜ao diferentes de 90o.
A seguir ser´a apresentado uma imagem representando uma tr´ıade com seus respectivos desvios de ortogonalidade.
Figura 3.1: ilustra¸c˜ao gr´afica dos desvios de ortogonalidade na tr´ıade.
FONTE: (TORMENA J ´UNIOR; GRANZIERA J ´UNIOR; TOSIN,2011)
Os desvios de ortogonalidade na tr´ıade sensora podem ser descritos atrav´es de 3 ˆangulos: ρ, ϕ e λ. A tr´ıade ortogonal ´e dada por x, y e z, enquanto a tr´ıade real, desalinhada ´e dada por x’, y’, e z’. O eixo x ´e considerado perfeitamente alinhado (x = x’). Considera-se o eixo y’ contido no plano xy, e seu desvio em rela¸c˜ao a y ´e dado por ρ. Os desvios do eixo z’ em rela¸c˜ao ao plano xz e yz s˜ao dados
respectivamente por λ e ϕ (TORMENA JR,2010).
Assim, os valores medidos dos sensores podem ser modelados em fun¸c˜ao dessas vari´aveis. Considerando uma grandeza f´ısica gen´erica, u = (ux, uy, uz)T, que pode ser associada tanto ao
magnetˆometro quanto ao acelerˆometro, as componentes da grandeza gen´erica podem ser escritas da seguinte maneira.
˜
ux= aux+ x0+ ηx (3.1)
˜
uy= b(uxsin ρ + uycos ρ) + y0+ ηy (3.2)
˜
uz= c(uxcos φ cos λ + uycos φ sin λ + uzcos φ cos λ) + z0+ ηz (3.3)
Onde ˜ux, ˜uy e ˜uz s˜ao as sa´ıda corrompidas do sensor, para os eixos x, y e z. Os valores ux, uy e uz s˜ao
os valores reais das componentes da grandeza f´ısica gen´erica. a, b e c s˜ao os fatores de escala, ou sensibilidade, dos respectivos eixos x, y e z. Os valores x0, y0e z0 s˜ao os biases dos eixos x, y e z.
Os ˆangulos ρ, φ e λ s˜ao os ˆangulos de desalinhamento ortogonal da tr´ıade sensora, conforme apresentado na figura 3.1.
Os valores ηz, ηy e ηz s˜ao os ru´ıdos presentes nas medidas, para os eixos x, y e z. O ru´ıdo pode ser
considerado AWGN com m´edia zero para uma aproxima¸c˜ao. Para a maioria dos acelerˆometros e magnetˆometros MEMS, o desvio padr˜ao do ru´ıdo ´e da ordem de 10−3− 10−4do valor do fundo de escala.
3.3
Rotina de Calibra¸
c˜
ao
O algor´ıtimo de calibra¸c˜ao aplicado neste trabalho ´e baseado no trabalho realizado por Foster e Elkaim (FOSTER C; ELKAIM) e que foi estudado na disserta¸c˜ao de mestrado do Osmar Tormena
(TORMENA JR,2010).
A rotina de calibra¸c˜ao aplicada neste trabalho possui uma restri¸c˜ao para a sua aplicabilidade, que ´e o conhecimento do m´odulo da grandeza f´ısica de referˆencia. Para a grandeza gen´erica u adotada, temos.
|u|2= u2 x+ u 2 y+ u 2 z (3.4)
Reescrevendo as equa¸c˜oes 3.1, 3.2 e 3.3, em termos de ux, uy e uz:
ux= (˜ux− x0) a (3.5) uy= −b sin ρ(˜ux− x0) + a(˜uy− y0)) ab cos ρ (3.6) uz=
bc(sin ρ cos φ sin λ − cos ρ sin φ cos λ)(˜ux− x0) − ac cos φ sin λ(˜uy− y0) + ab cos ρ(˜uz− z0)
abc cos ρ cos φ cos λ (3.7)
Aplicando as equa¸c˜oes 3.5, 3.6 e 3.7 na equa¸c˜ao 3.4, ´e poss´ıvel obter uma equa¸c˜ao da seguinte forma.
A˜u2x+ B ˜uxu˜y+ C ˜uxu˜z+ D ˜u2y+ E ˜uyu˜z+ F ˜u2z+ G˜ux+ H ˜uy+ I ˜uz+ J = 0 (3.8)
Onde A, B, C, D, E, F, G, H, I e J s˜ao fun¸c˜oes n˜ao lineares dos parˆametros de calibra¸c˜ao. A equa¸c˜ao 3.8 ´e n˜ao linear em termos dos parˆametros de calibra¸c˜ao, por´em ela ´e linear em termos de A − J . Assim pode-se utilizar A − J como vari´aveis intermedi´arias lineares, que podem ser encontradas por um estimados simples, e assim, resolver os parˆametros de calibra¸c˜ao algebricamente a partir destas vari´aveis. O desenvolvimento alg´ebrico das equa¸c˜oes pode ser encontrado em (TORMENA JR,2010). O estimador utilizado ´e o Estimador por M´ınimos Quadrados.
3.3.1
Estima¸
c˜
ao por M´ınimos Quadrados
Para aplicar o estimador por m´ınimos quadrados e facilitar a posterior manipula¸c˜oes das equa¸c˜oes, a equa¸c˜ao 3.8, foi dividida pelo fator F ˜u2z, por se tratar de um dos fatores mais simples.
Assim, a equa¸c˜ao 3.8 pode ser reescrita da seguinte forma.
A˜u2 x F ˜u2 z +B ˜uxu˜y F ˜u2 z +C ˜uxu˜z F ˜u2 z +D ˜u 2 y F ˜u2 z +E ˜uyu˜z F ˜u2 z +G˜ux F ˜u2 z +H ˜uy F ˜u2 z + I ˜uz F ˜u2 z + J F ˜u2 z = −1 (3.9)
Que pode ser escrita da forma matricial. ˜ u2x1 ˜ u2 z1 ˜ ux1u˜y1 ˜ u2 z1 . . . F ˜u12 z1 ˜ u2 x2 ˜ u2 z2 ˜ ux2u˜y2 ˜ u2 z2 . . . F ˜u12 z2 .. . ... ... ˜ u2xn ˜ u2 zn ˜ uxnu˜yn ˜ u2 zn . . . 1 F ˜u2 zn n×9 A F B F .. . J F = −1 −1 .. . −1 (3.10)
Esse sistema matricial pode ser expresso pela seguinte equa¸c˜ao.
Onde X ´e a matriz de amostras, de dimens˜ao n × 9, n ´e o n´umero de amostras utilizado, sendo n ≥ 9. O vetor k indica os coeficientes da equa¸c˜ao 3.9 e p ´e um vetor unit´ario negativo.
Para se obter as vari´aveis intermedi´arias, ´e necess´ario isolar o vetor k. Para encontrar os valores de k, faz-se o seguinte desenvolvimento.
Xk = p XTXk = XTp (XTX)−1XTXk = (XTX)−1XTp Ik = (XTX)−1XTp ˆ k = X†p (3.12)
Onde X† = (XTX)−1XT indica a Pseudo-Inversa de Moore-Penrose, que para n ≥ 9, torna-se
matematicamente a aplica¸c˜ao do LSE. O (ˆk) indica o valor estimado de k.
3.3.2
C´
alculo dos Parˆ
ametros
Para simplificar a representa¸c˜ao da solu¸c˜ao alg´ebrica dos parˆametros de calibra¸c˜ao a partir das vari´aveis intermedi´arias estimadas, ser´a feito uma mudan¸cas de var´aveis.
α = −AF β = −BF γ = −CF δ = −DF = −EF χ = −GF µ = −HF ι = −FI κ = −FA
(3.13)
Onde o sinal negativo ´e referente ao efeito de p.
Para minimizar o trabalho alg´ebrico, foi realizado algumas aproxima¸c˜oes. Os acelerˆometros e
magnetˆometros dispon´ıveis no mercado, tem um desvio de ortogonalidade muito pequeno, menor que um grau, assim, pode-se utilizar as seguintes aproxima¸c˜oes.
cos θ ≈ 1 (3.14)
sin θ ≈ θ (3.15)
Os parˆametros a ser estimados a partir das vari´aveis intermedi´arias s˜ao: 3 fatores de escala, 3 biases e 3 ˆ
angulos.
A seguir ´e apresentada a solu¸c˜ao para esse problema.1
ˆ x0= − 2χ − 2βµ + 4δχ − βι + 2γδι − γµ −2β2− 2βγ + 2δγ2+ 2α2+ 8αδ (3.16) ˆ y0= − γ2µ + 4αµ − 2βχ + βγι + 2αι − γχ −2β2− 2βγ + 2δγ2+ 2α2+ 8αδ (3.17)
ˆ z0= − β2ι − βγµ − 4αδι + 2αµ − βχ + 2γδχ −2β2− 2βγ + 2δγ2+ 2α2+ 8αδ (3.18) ˆ c = 1 |u| q κ − αˆx2 0− β ˆx0yˆ0− γ ˆx0zˆ0− δ ˆy20− ˆy0zˆ0+ ˆz02 (3.19) ˆ b = √ˆc −δ (3.20) ˆ a =√2ˆc(1 − ˆλ2) s −1 2αˆc2(1 − ˆλ2)2− (βˆbˆλ + γˆcˆλ2)(βˆbˆλ + γˆc) (3.21) ˆ ρ =ˆa(βˆb + γˆcˆλ) 2ˆc2(1 − ˆλ2) (3.22) ˆ φ = ˆa(βˆbˆλ + γˆc) 2ˆc2(1 − ˆλ2) (3.23) ˆ λ = 2√−δ (3.24)
Procedimentos Metodol´
ogicos
4.1
Procedimentos Metodol´
ogicos
Neste t´opico ser˜ao apresentados os procedimentos e m´etodos utilizados para a implementa¸c˜ao de um algor´ıtimo de determina¸c˜ao de atitude em um sistema embarcado.
4.1.1
Determinador de Atitude
Para montar fisicamente o determinador de atitude, foi utilizado o kit de desenvolvimento Open407V-D Standard - STM32F4 Development Board. Este kit ´e composto por uma placa de interconex˜oes e por uma placa de processamento denominada STM 32 Cortex-M4 MCU Board . O kit suporta expans˜oes com v´arias placas acess´orios opcionais para aplica¸c˜ao espec´ıfica.
Uma dessas placas de expans˜ao contˆem o magnetˆometro MAG3110 (MAG3110), que ´e utilizado para se determinar a atitude.
O outro sensor utilizado, ´e o acelerˆometro (LIS3DSH), fixo `a placa de processamento do kit de desenvolvimento.
A placa acess´orio PL2303 USB UART Board ´e um conversor Usb Serial para RS232, necess´ario para enviar os dados via serial para leitura com o simulink.
Na figura 4.1 ser´a apresentado o kit de desenvolvimento, com as respectivas placas acess´orios utilizadas para a implementa¸c˜ao do determinador de atitude.
Figura 4.1: Kit de desenvolvimento utilizado para implementa¸c˜ao do determinador de atitude.
FONTE: Foto do kit tirada pelo autor.
4.1.2
Implementa¸
c˜
ao do Algor´ıtimo TRIAD
O microcontrolador presente no kit de desenvolvimento ´e o stm32F 407ARM CortexM 4, onde foi implementado o algor´ıtimo TRIAD.
O ambiente de desenvolvimento utilizado para programa¸c˜ao foi o Coocox CoIDE.
Para implementa¸c˜ao do algor´ıtimo TRIAD foi realizado alguns passos, como leitura dos sensores, defini¸c˜ao dos vetores de referˆencia e de observa¸c˜ao, assim como a aplica¸c˜ao do pr´oprio TRIAD. Para melhor compreens˜ao, o funcionamento do algor´ıtimo ser´a explicado a partir do fluxograma apresentado na figura 4.2.
Figura 4.2: Fluxograma do algor´ıtimo determinador de atitude implementado. INICIA PERIFÉRICOS CONFIGURA SENSORES ESTADO LEITURA = NOVO LEITURA SENSORES LEITURA SENSORES = 1 VETOR OBSERVAÇÃO TRIAD ENVIA DADOS SERIAL ESTADO LEITURA = VELHO VETOR REFERÊNCIA HANDLER TIM ESTADO LEITURA = NOVO THREAD NÃO SIM SIM NÃO FONTE: Autor.
O primeiro passo ´e iniciar os perif´ericos, para que torne poss´ıvel a comunica¸c˜ao do microcontrolador com os sensores e tamb´em o envio dos dados atrav´es da sa´ıda serial.
Em seguida, os parˆametros dos sensores s˜ao configurados, como por exemplo, o modo de opera¸c˜ao, taxa de dados e sensibilidade.
Configurado os sensores, o algor´ıtimo TRIAD ´e inicializado. A partir da vari´avel estado leitura, se for igual a novo, habilita a leitura dos sensores.
as leituras posteriores s˜ao definidas como vetores de observa¸c˜ao.
Definidos os vetores de referˆencia e de observa¸c˜ao, o TRIAD ´e calculado, retornando a matriz de atitude(DCM), que ´e enviada via serial para posterior tratamento dos dados. Ap´os o envios dos dados via serial, a vari´avel estado leitura ´e atualizada como velho e a interrup¸c˜ao conta um tempo at´e que ela volte para o estado novo, e o sistema novamente volta a rotina de leitura dos sensores.
4.1.3
Valida¸
c˜
ao do Algor´ıtimo
Para validar o funcionamento do algor´ıtimo TRIAD, foi realizado um teste a partir de uma matriz de atitude e vetores de referˆencia conhecidos.
Considere a matriz de atitude A como a seguir
A = 0.33333 0.93333 −0.13333 −0.66666 0.33333 0.66666 0.66666 −0.13333 0.73333 (4.1)
e os vetores de referˆencia v1 e v2 como sendo
v1= 0 0 −1 v2= 0 0, 6 0, 8 (4.2)
rodando os vetores v1 e v2pelo uso da equa¸c˜ao 2.33 , s˜ao obtidos os vetores de referˆencia
w1= 0, 13333 −0.66666 −0, 73333 w2= 0, 45333 0, 73333 0, 50666 (4.3)
Os vetores v1, v2, w1 e w2foram executados no c´odigo implementado e a matriz de atitude encontrada
foi a mesma apresentada na equa¸c˜ao 4.1. Isto mostra que o algor´ıtimo est´a funcionando corretamente.
Configura¸c˜ao dos Sensores
Os sensores MEMS s˜ao bastantes vers´ateis, podendo ser configurados de diversas maneiras para as mais variadas aplica¸c˜oes. Essas configura¸c˜oes s˜ao feitas por meio de registradores e as mais comuns s˜ao: Modo de Opera¸c˜ao, Taxa de Dados, Reset Autom´atico, Fundo de Escala, Offset e outras.
Configura¸c˜ao do Magnetˆometro
O magnetˆometro utilizado neste trabalho ´e o M AG3110 da Freescale ( [MAG3110 2012]), que faz parte de kit de desenvolvimento. Este dispositivo s´o permite comunica¸c˜ao serial via I2C.
Tabela 4.1: Especifica¸c˜oes el´etricas e de opera¸c˜ao do magnetˆometro.
Parˆametro S´ımbolo M´ınimo M´aximo T´ıpico Unidade
Fundo de escala FS ± 1000 µT
Intervalo dos dados de sa´ıda (RAW = 1) -15000 15000 bits Intervalo dos dados de sa´ıda (RAW = 0) -30000 30000 bits
Sensibilidade So 0,10 µT/bits
Offset sem fluxo ± 500 µT
Ru´ıdo de sa´ıda Noise 0.14, 0.10, 0.07, 0.05 µT rms Tens˜ao de alimenta¸c˜ao VDD -0.3 3.6 V Campo magn´etico m´aximo 100000 µT
A figura 4.3 mostra uma imagem da placa acess´orio que cont´em o magnetˆometro.
Figura 4.3: Magnetˆometro M AG3110.
Para configurar o magnetˆometro, ´e utilizado dois registradores principais. O CT RL REG1, onde ´e selecionado a taxa de dados, o ru´ıdo estimado e o modo de opera¸c˜ao e o CT RL REG2 define o modo de aquisi¸c˜ao.
No primeiro registrador, foi selecionado uma taxa de leitura de dados de 20 Hz , para esta taxa o ru´ıdo estimado ´e de 0, 14µTrms e foi selecionado tamb´em para trabalhar no modo ativo, ou seja, ele fornecer´a
medidas peri´odicas de acordo com a taxa de dados selecionada.
No segundo registrador foi configurado um reset autom´atico. Antes de cada aquisi¸c˜ao de dados, o magnetˆometro ´e ressetado.
Configura¸c˜ao do Acelerˆometro
O acelerˆometro utilizado ´e o LIS3DSH (LIS3DSH), que se encontra presente na placa de processamento STM 32 Cortex-M4 MCU Board do kit de desenvolvimento. Este dispositivo permite tanto comunica¸c˜ao serial via I2C, quanto via SP I. Por´em, ele j´a vem fixo `a placa para se comunicar via SP I.
As principais caracter´ısticas deste dispositivo ´e apresentado na tabela 4.2.
Tabela 4.2: Especifica¸c˜oes el´etricas e de opera¸c˜ao do acelerˆometro.
Parˆametro S´ımbolo M´ınimo M´aximo T´ıpico Unidade Fundo de escala FS ±2.0, ± 4.0, ± 6.0, ±8.0, ±16.0 g Sensibilidade So 0.06, 0.12, 0.18, 0.24, 0.73 mg/d´ıgito Offset sem acelera¸c˜ao ± 40 mg Ru´ıdo de sa´ıda (100 Hz) Noise 150 µg/sqrt(Hz) Tens˜ao de alimenta¸c˜ao VDD 1.71 3.6 2.5 V
A figura 4.4 mostra uma imagem do acelerˆometro.
Figura 4.4: Acelerˆometro LIS3DSH(Motion Sensor ).
FONTE: Foto tirada pelo autor.
As configura¸c˜oes do acelerˆometro foram semelhantes as do magnetˆometro. Foi configurado um registrador para habilitar os eixos para leitura, caso contr´ario, n˜ao ´e poss´ıvel realizar as medi¸c˜oes. A taxa de dados selecionada foi de 6, 25 Hz, o fundo de escala foi de ±16 g1 e o ru´ıdo para essa condi¸c˜ao
´e de 60µg.
4.1.4
Problemas com Ru´ıdo
Configurado os sensores, foram feitas medidas para analisar a qualidade do sinal que estava sendo lido. Observou-se a presen¸ca de ru´ıdo nos sinais coletados, como mostrado nas figuras 4.5 e 4.6.
Figura 4.5: Dados do magnetˆometro sem filtro.
0 50 100 150 200 250 300 350 −300 −200 −100 0 100 200 300 Eixo x Eixo y
Dados não Filtrados
Magx Mag y Magz FONTE: Autor. 11g = 9,797 645 m/s2
Figura 4.6: Dados do acelerˆometro sem filtro. 0 50 100 150 200 250 300 350 −1500 −1000 −500 0 500 1000 1500 2000 Eixo x Eixo y
Dados não Filtrados
Acelx Acely Acelz
FONTE: Autor.
Com intuito de minimizar o ru´ıdo inerente aos sensores, foi implementado um filtro do tipo m´edia m´ovel.
Filtro M´edia M´ovel
Muitas vezes, para eliminar ou diminuir algum ru´ıdo indesej´avel em um sinal, ´e necess´ario filtr´a-lo. Para isso, pode-se utilizar um filtro bem simples, chamado de m´edia m´ovel(MM).
O filtro m´edia m´ovel ´e obtido calculando-se a m´edia de um conjunto de valores, sempre adicionando um novo valor ao conjunto e se descartando o mais antigo.
O filtro m´edia m´ovel ´e representado por:
y[n] = 1 N + 1 N X k=0 x[n − k] (4.4)
Sendo n ´e o tempo atual, N + 1 ´e o n´umero de amostras utilizadas para a filtragem, y[n] ´e o sinal filtrado e as amostras x[n], x[n − 1] · · · x[n − k], representa o conjunto dos valores a serem somados. O filtro MM ´e o filtro mais comum utilizado em DSP, principalmente porque ele ´e o filtro digital mais f´acil de compreender e utilizar. . O filtro MM ´e ´otimo para uma tarefa comum: reduzir o ru´ıdo aleat´orio enquanto mant´em uma resposta seletiva ao degrau. Isto faz com que o filtro seja o mais indicado para sinais codificados no dom´ınio do tempo. Entretanto, o filtro MM ´e o pior para o dom´ınio da frequˆencia, com uma pequena habilidade de separa uma banda de frequˆencia das outras (SMITH,2003) .
Figura 4.7: Resposta em Frequˆencia do Filtro M´edia M´ovel. 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Resposta em Frequência do Filtro Média Móvel
Frequência Normalizada Magnitude M = 4 M =8 M = 20 M = 30 M = 50 Banda de Passagem FONTE: Autor.
Assim, com base na resposta em frequˆencia do filtro m´edia m´ovel e considerando a banda de passagem −3dB e a frequˆencia de amostragem igual a 20 Hz, verificou-se que um n´umero de amostras igual a 4 ´e o suficiente para reduzir o ru´ıdo.
Implementa¸c˜ao do Filtro M´edia M´ovel
Para implementa¸c˜ao do Filtro MM, foi gerado um c´odigo em que seu funcionamento ´e apresentado no fluxograma a seguir
Figura 4.8: Fluxograma do filtro MM.
Inicío Acumulo == 0
Acumula buffer com N posições Adiciona medida nova
e descarta a antiga no buffer Média Móvel NÃO SIM FONTE: Autor.
O primeiro passo para realiza¸c˜ao da m´edia m´ovel dos sinais dos sensores, ´e acumular em um buffer com N amostras, ou seja, quando o sistema identifica que ´e a primeira leitura dos sensores, ele continuar´a realizando medidas at´e o n´umero de amostras necess´aria para se calcular a m´edia.
Ap´os a primeira intera¸c˜ao, a cada nova leitura, o sistema descarta a mais antiga e acrescenta uma nova ao buffer e novamente realiza a m´edia, e assim sucessivamente.
Sinal Filtrado
A figura 4.10 apresenta os sinais do magnetˆometro e do acelerˆometro ap´os aplicado o filtro MM com 5 amostras.
Figura 4.9: Dados do magnetˆometro com filtro m´edia m´ovel com N = 4. 0 50 100 150 200 250 300 350 −300 −200 −100 0 100 200 300 Eixo x Eixo y Dados com MM = 4 Magx Magy Magz FONTE: Autor.
Figura 4.10: Dados do acelerˆometro com filtro m´edia m´ovel com N = 4.
0 50 100 150 200 250 300 350 −1500 −1000 −500 0 500 1000 1500 2000 Eixo x Eixo y Dados com MM = 4 Acelx Acely Acelz FONTE: Autor.
4.1.5
Calibra¸
c˜
ao dos Sensores
Os acelerˆometros, por sua caracter´ıstica de fabrica¸c˜ao, s˜ao sensores bem mais confi´aveis que o magnetˆometro, com baixo ru´ıdo, offset e fator de escala.
Assim, analisando os dados dos sensores, verificou-se que no acelerˆometro havia um offset. J´a o magnetˆometro, al´em do ru´ıdo presente, foi verificado a presen¸ca de um offset maior que o valor do campo a ser medido, o que justificou a necessidade de realizar uma rotina de calibra¸c˜ao.
Calibra¸c˜ao Magnetˆometro
Os magnetˆometros, em especial os do tipo MEMS, tem uma varia¸c˜ao do fundo de escala muito alta. Para o magnetˆometro MAG3110, essa varia¸c˜ao ´e de ±1000 µT (10000 mG)2, muito maior em rela¸c˜ao ao campo magn´etico terrestre que se deseja medir, que ´e em torno de 200 mG para a regi˜ao de londrina (??). Este fato reduz muito a qualidade do sinal medido, pois a rela¸c˜ao sinal ru´ıdo ser´a alta devido a baixa intensidade medida e ao fundo ruidoso significativo destes sensores.
O campo magn´etico terrestre tem um modelo bem definido para toda a superf´ıcie do globo. Com apenas a informa¸c˜ao de posi¸c˜ao do sistema, latitude e longitude, ´e poss´ıvel encontrar o m´odulo e dire¸c˜ao do campo magn´etico.
Com aux´ılio do software MatLab ´e poss´ıvel determinar a intensidade do campo magn´etico atrav´es de fun¸c˜oes feitas com base no modelo magn´etico mundial(WMM - World Magnetic Model 3) . A fun¸c˜ao utilizada no MatLab para encontrar o campo magn´etico terrestre foi a wrldmagm.
Esta fun¸c˜ao tem a seguinte sintaxe.
[xyz, h, dec, dip, f ] = wrldmagm(height, lat, lon, dyear) (4.5) Entrando com os valores de altura, latitude, longitude e o ano, a fun¸c˜ao retorna o vetor do campo magn´etico, a intensidade horizontal do campo magn´etico, a declina¸c˜ao, a inclina¸c˜ao e a intensidade total do campo magn´etico.
A tabela 4.3 mostra os parˆametros de entrada utilizado na fun¸c˜ao wrldmagm e os valores que ela retorna.
Tabela 4.3: Parˆametros da fun¸c˜ao wrldmagm.
Parˆametros de Entrada Sa´ıda
height[m] 1000 xyz[nT] 1000*[1,8146 -0,6106 -1,2134] Lat[o] -23,3262672 h[nT] 1, 91.104
Lon[o] -51,2075168 dec[o] -18,5977 dyear 31/12/2014 dip[o] -32,3647
f[nT] 2, 2667.104
Um dos crit´erios para o uso da rotina de calibra¸c˜ao ´e conhecer o m´odulo do campo magn´etico. Assim, atrav´es da fun¸c˜ao citada acima (4.5), encontrou-se uma valor de 226,67 mG de intensidade do campo magn´etico para a regi˜ao de Londrina.
Para iniciar o processo de calibra¸c˜ao, foi coletado um conjunto de dados do magnetˆometro. O magnetˆometro foi posicionado em diferentes posi¸c˜oes para que os dados coletados englobasse todas as dire¸c˜oes poss´ıveis, melhorando a qualidade da calibra¸c˜ao.
Com o conjunto de pontos coletados, ´e executada a rotina de calibra¸c˜ao, onde ela retorna os valores de offset, fator de desalinhamento e fator de escala.
A figura 4.11 mostra os dados do sensor plotado em trˆes dimens˜oes acompanhados de uma esfera de referˆencia cujo raio ´e o m´odulo de intensidade do campo magn´etico. Estes dados plotados s˜ao sem calibra¸c˜ao.
21 µT = 10 mG
Figura 4.11: Dados magnetˆometro sem calibra¸c˜ao. −900 −800 −700 −600 −500 500 600 700 800 500 600 700 800 900 Eixo x Eixo y Eixo z FONTE: Autor.
Analisando os dados plotados na figura 4.11, observa-se que o centro da esfera est´a em
aproximadamente no ponto (-700, 700, 700). Em um sensor calibrado, as medidas tem de estar em torno no ponto (0, 0, 0), o que n˜ao se observa no caso do magnetˆometro, que tem um offset maior que o pr´oprio campo magn´etico medido.
Feito o processo de calibra¸c˜ao, obteve-se os seguinte parˆametros.
Tabela 4.4: Parˆametros estimados pela rotina de calibra¸c˜ao com dados do magnetˆometro.
a 0.87 b 0.91 c 0.88 x0 -706.09 y0 630.59 z0 684.68 λ 0.71o ρ −2.79o φ −0.03o
Os parˆametros obtidos foram aplicados a leitura do magnetˆometro para corrigir o offset, o fator de escala e os ˆangulos de desalinhamento.ia na calibra¸c˜ao. Assim, coletou-se um novo conjunto de dados para verificar o resultado da calibra¸c˜ao.
Figura 4.12: Dados magnetˆometro calibrado e corrigido. −200 0 200 −200 −100 0 100 200 −200 −100 0 100 200 Eixo x Eixo y Eixo z FONTE:Autor
Ap´os a calibra¸c˜ao, as medidas formam uma esfera centrada em zero, ou seja o offset agora n˜ao est´a mais presente nos dados corrigidos. A figura 4.13 mostra a diferen¸ca entre os dados calibrados e n˜ao calibrados e a figura 4.14 mostra os valores de leitura do magnetˆometro j´a calibrado.
−800−600 −400−200 0 200 −200 0 200 400 600 800 −200 0 200 400 600 800 Eixo x Eixo y Eixo z Dados Calibrados Dados não Calibrados
Figura 4.14: Dados do magnetˆometro calibrado. −100 0 100 −100 0 100 −150 −100 −50 0 50 100 150 Eixo x Eixo y Eixo z FONTE: Autor.
Calibra¸c˜ao do Acelerˆometro
A rotina de calibra¸c˜ao utilizada para os dados do magnetˆometro foi a mesma empregada para calibrar o acelerˆometro. Na figura 4.15 s˜ao apresentados os dados do acelerˆometro sem calibra¸c˜ao.
Figura 4.15: Dados reais do acelerˆometro.
−1000 0 1000 −1000 0 1000 −2000 −1500 −1000 −500 0 500 1000 1500 2000 Eixo x Eixo y Eixo z FONTE: Autor.
No acelerˆometro nota-se uma diferen¸ca nos fatores de escala, principalmente no eixo Z. Os parˆametros obtidos ´e apresentado na tabela 4.5.
Tabela 4.5: Parˆametros estimados pela rotina de calibra¸c˜ao com dados do acelerˆometro. a 0.91 b 0.93 c 0.59 x0 -48.24 y0 44.37 z0 32.23 λ −0.26o ρ −2.61o φ −6.30o
A compara¸c˜ao entre os dados reais e os dados calibrados ser´a apresentado na figura 4.16.
Figura 4.16: Compara¸c˜ao entre os dados sem e com calibra¸c˜ao do acelerˆometro.
−1000 0 1000 −1000 0 1000 −2000 −1500 −1000 −500 0 500 1000 1500 2000 Eixo x Eixo y Eixo z Dados Calibrados Dados não Calibrados
FONTE: Autor.
Observa-se pela figura 4.16 que o offset dos eixos de medida estavam corretos. No entanto, os fatores de escala, principalmente para o eixo Z, estavam descalibrados. A tabela 4.5 mostra claramente isso. Pela tabela 4.5 tamb´em vemos que o desalinhamento do eixo Z do sensor com o plano ZY da tr´ıade de referˆencia (ϕ) est´a maior que 6o.
Para a corre¸c˜ao destes dados, tanto o acelerˆometro quanto o magnetˆometro, foi utilizado as equa¸c˜oes 3.1, 3.2 e 3.3 ap´os a leitura dos dados.
4.1.6
Interface com o Simulink
O algor´ıtimo TRIAD retorna a matriz DCM do sistema, por´em, n˜ao ´e simples interpretar a atitude a partir dela. Um m´etodo mais simples de verificar a atitude de um sistema ´e a partir dos ˆangulos de Euler ou ainda, atrav´es de uma interface gr´afica para visualiza¸c˜ao dos dados.
forma de anima¸c˜ao da atitude, foi criado uma interface utilizando o Simulink.
Esta interface lˆe os dados da matriz DCM enviados via serial, converte a matriz DCM em ˆangulos de Euler, os apresenta em um display e em forma de anima¸c˜ao.
39 FONTE: Autor.
O bloco denominado Serial Receive configura a entrada da serial para aquisi¸c˜ao de dados. Como os dados enviados via serial est˜ao no formato hexadecimal, foi utilizado o bloco ASCII Decode para converter os dados em ascii. O bloco Matriz agrupa os dados na forma matricial, uma vez que ´e enviado um elemento da matriz por vez via serial. O bloco Direction Cosine Matrix to Rotation Angles converte a matriz DCM em ˆangulos de Euler ( ˆAngulos de Rota¸c˜ao). rad2deg converte os ˆangulos de radianos para graus. E por ´ultimo, o bloco MATLAB Animation, a partir dos ˆangulos de rota¸c˜ao gera uma anima¸c˜ao. O bloco de anima¸c˜ao, figura 4.18, apresenta um objeto em trˆes dimens˜oes, onde ´e poss´ıvel visualizar em tempo real a atitude.
Figura 4.18: Interface de anima¸c˜ao do simulink.
FONTE: Autor.
O desempenho do determinador de atitude ´e melhor avaliado atrav´es de uma anima¸c˜ao. Forma anal´ıtica, tal como o plot no tempo dos valores dos quat´ernions, s˜ao dif´ıceis de se analisar. Uma forma qualitativa, pelo menos para o escopo deste trabalho, ´e melhor.
Resultados
5.1
Testes do Algor´ıtimo Determinador de Atitude
O c´odigo do algor´ıtimo TRIAD implementado retorna como resultado a matriz de atitude a uma taxa de 20Hz. Esses dados s˜ao transmitidos via interface RS232 para leitura com o simulink, onde ser˜ao analisados.
A partir da matriz de atitude e com os ˆangulos de rota¸c˜ao, definidos nas equa¸c˜oes 2.27, 2.28 e 2.29, ´e poss´ıvel verificar o funcionamento algor´ıtimo.
Com o simulink, ´e realizado a leitura da matriz DCM e atrav´es de um bloco chamado Direction Cosine Matrix to Rotation Angles, ´e poss´ıvel visualizar os ˆangulos de rota¸c˜ao.
Para obter uma maior precis˜ao nos ˆangulos medidos, foi constru´ıdo um aparato com dois ˆangulos definidos, 450 e 600, como apresentado na figura 5.1.
Figura 5.1: Aparato constru´ıdo para medidas dos ˆangulos de rota¸c˜ao.
FONTE: Autor.
Com esse aparato, o determinador de atitude pode ser posicionado em diferentes posi¸c˜oes e realizado medidas para ˆangulos distintos.
Na tabela 5.1, 5.2 e 5.3 ser´a apresentado os valores coletados.
Tabela 5.1: Medidas dos ˆangulos de rota¸c˜ao em torno do eixo X (ϕ).
Posi¸c˜ao Eixo X Eixo Y Eixo Z Inicial −0.22o −1.38o −0.52o
Rota¸c˜ao de 90oem X 90.12o −11.05o 1.54o
Rota¸c˜ao de 180oem X 176.17o −1.32o −3.26o
Nas figuras 5.2, 5.3 e 5.4 s˜ao apresentados as rota¸c˜oes vista com a anima¸c˜ao feita com o simulink.
Figura 5.2: Visualiza¸c˜ao da rota¸c˜ao em torno do eixo X.
FONTE: Autor.
Tabela 5.2: Medidas dos ˆangulos de rota¸c˜ao em torno do eixo Y (θ).
Posi¸c˜ao Eixo X Eixo Y Eixo Z Inicial −0.62o −2.12o −0.08o
Rota¸c˜ao de 45oem Y −1.13o 42.41o −3.92o
Rota¸c˜ao de 90oem Y −6.75o 86.83o 9.58o
Figura 5.3: Visualiza¸c˜ao da rota¸c˜ao em torno do eixo Y.
Tabela 5.3: Medidas dos ˆangulos de rota¸c˜ao em torno do eixo Z (Ψ).
Posi¸c˜ao Eixo X Eixo Y Eixo Z Inicial −0.94o −0.01o 2.17o
Rota¸c˜ao de 90oem Z 11.13o 2.56o 92.16o Rota¸c˜ao de 180oem Y −6.75o 86.83o 173.79o
Figura 5.4: Visualiza¸c˜ao da rota¸c˜ao em torno do eixo Z.
FONTE: Autor.
As rota¸c˜oes foram realizadas respeitando a faixa de atua¸c˜ao do ˆangulos de Euler apresentadas na equa¸c˜ao 2.5.
Realizado as medi¸c˜oes dos ˆangulos, verificou-se que a movimentar em torno de um ´unico eixo, os outros dois eixos tamb´em apresentavam medidas de ˆangulos. O poss´ıvel problema ´e, como o acelerˆometro e o magnetˆometro est˜ao em placas separadas, os eixos dos sensores n˜ao est˜ao devidamente alinhados, como ilustra a figura 5.5.
Figura 5.5: Desalinhamento entre os eixos dos sensores.
Eixos do
Acelerômetro
Eixos do
Magnetômetro
Como apresentado na figura 5.5, o ideal ´e que os eixos estejam alinhados na mesma dire¸c˜ao. Por´em, como a placa do magnetˆometro conectado ao kit de desenvolvimento, ´e prov´avel que haja o
desalinhamento, como ilustra os eixos em laranjado.
Solu¸c˜ao
Uma solu¸c˜ao para este problema seria colocar os dois sensores no mesmo referencial e realizar medidas de acelera¸c˜ao e campo magn´eticos conhecidos, coletando estes dados, ´e poss´ıvel encontrar uma matriz que relaciona o desalinhamento entre os eixos dos sensores. A partir desta matriz ´e poss´ıvel corrigir este desalinhamento.