Determinação de Atitude Utilizando
Dados de uma IMU
DATA ENTREGA: ATÉ DIA
30/08/2019 NO HORÁRIO DA AULA
Cláudia Celeste Celestino
claudia.celeste@ufabc.edu.br
Unidade de Medida Inercial (IMU) é composta
por sensores inerciais acoplados em uma única
base, de forma a manter a mesma orientação
relativa. Estes sensores medem mudanças no
movimento pelas acelerações e rotações em
direções conhecidas. A posição é calculada pela
integração
numérica
das
acelerações
e
O acelerômetro é modelado pela 2
aLei de
Newton. O funcionamento deste sensor pode
ser entendido, de forma simplificada, com uma
massa suspensa for uma haste fixa em um
suporte. Quando este sistema sofre uma
mudança de velocidade, ou seja, é acelerado
ou desacelerado, a massa é deslocada de sua
posição inicial proporcionalmente a aceleração
em que foi submetida.
Os giroscópios foram projetados para medir a
taxa de rotação em um eixo especifico e são
baseados no principio de inércia e na
conservação momento angular. Giroscópios
mecânicos consistem em um rotor suspenso
por um suporte que, quando em alta
velocidade angular mantém o apontamento do
respectivo eixo de rotação e se opõe a
O magnetômetro é um dispositivo capaz de
medir a direção de um campo magnético,
utilizando como parâmetro o sistema de
referencia fixo no veículo especial. Este
dispositivo geralmente é constituído por um
sensor magnético e uma unidade eletrônica,
cuja
função
é
converter
as
medidas
O Arduino é uma plataforma de prototipagem
eletrônica open-source composta por uma
única placa, baseada em hardware e software
destinados as áreas de automação e robótica.
O microprocessador é capaz de ler as
informações de entrada e transformá-los numa
saída controlada pela função programada pelo
usuário.
A IMU é composta pelos seguintes componentes e sensores:
• Um giroscópio de três eixos ITG-3200® contido na placa 9DOF SPARKFUN®;
• Um acelerômetro de três eixos ADXL345® contido na placa 9DOF SPARKFUN®;
• Um magnetômetro de três eixos HMC5883L® contido na placa 9DOF SPARKFUN®;
• Uma protoboard;
Os sistemas de coordenadas dos sensores não
correspondem ao sistema de coordenadas adotado
para a placa, fazendo-se necessária a correção dos eixos
de cada um dos sensores.
- Posicione a placa da IMU em repouso, sobre uma superfície plana
- Conecte a placa ao computador utilizando a entrada USB executa-se uma rotina em MATLAB.
- Verifique o sistema de coordenadas do corpo, uma vez que o acelerômetro, o giroscópio e o magnetômetro apresentam sistemas de referência diferentes.
- Obtenha arquivos de saída no formato .txt.
Observações:
- o apontamento do eixo X da placa deve estar na mesma direção e sentido que o norte da bússola.
- Dados coletados como referência: a aceleração da gravidade
no eixo Za do acelerômetro e o campo magnético na direção
Ym para o magnetômetro.
- As colunas 1 - 3 referem-se às medições do acelerômetro, as 4 - 6 colunas referem-se às medidas do magnetômetro, 7 – 9
1. Posicione a placa da IMU, em repouso, sobre a bancada e utilize a bússola para determinar o
2. Obtenha a matriz (1.000x10) utilizando a rotina em MatLab “Leitura.m”. A matriz obtida com tal procedimento, é denominada “parada.txt
- Fatores de sensibilidade de cada sensor para converter as unidades das medidas realizadas para grandezas conhecidas.
fator_de_escala
Sensor Valor Unidade
Acelerômetro 256 LSB / g
Magnetômetro normalizado LSB / Gauss
Giroscópio 14,375 LSB / (rad/s)
Fator de escala
- A linha referente ao tempo apresenta o tempo de interação para cada medida e a unidade é em milissegundo
3. Verificar os valores obtidos em “parada.txt” e interpretar os dados obtidos pelos sensores, relacionando as medidas do acelerômetro, magnetômetro e giroscópio sabendo que,
ax ay az mx my mz gx gy gz t Ax1 Ay1 Az1 mx1 my1 mz1 gx1 gy1 gz1 t1
axf ayf azf mxf myf mzf gxf gyf gzf tf
𝑎𝑐𝑐𝑥 𝑎𝑐𝑐𝑦 𝑎𝑐𝑐𝑧 𝑚𝑎𝑔𝑥 𝑚𝑎𝑔𝑦 𝑚𝑎𝑔𝑧 𝑔𝑦𝑟𝑥 𝑔𝑦𝑟𝑦 𝑔𝑦𝑟𝑧 Valor ideal 0 0 Valor médio 𝑎𝑐𝑐𝑥 𝑎𝑐𝑐𝑦
- Calcule o desvio para calibrar as medidas experimentais. O desvio será dado pela diferença entre o valor ideal e o valor médio de cada um dos eixos de cada um dos sensores da condição parada.
Desvio = valor ideal – valor médio
Repita o procedimento para aquisição de dados da placa IMU parada, contudo, neste novo conjunto de dados, será considerada a rotação da placa IMU, ou seja, a placa deverá ser movimentada enquanto a rotina “leitura.m” é executada, da seguinte forma:
rotação em torno do eixo Z de +90°, ou seja, 𝜙 = +90° rotação em torno do eixo Z de -90°, ou seja, 𝜙 = -90°
Aquisição de dados em movimento
Análogo:
rotação em torno do eixo Y de + 90°, ou seja, 𝜓 = +90° rotação em torno do eixo Y de – 90°, ou seja, 𝜓= −90°
rotação em torno do eixo X de −90°→𝜃=−90° rotação em torno do eixo X de +90°→𝜃=+90°
Conjunto de dados 2
- rotação em torno do eixo Z de +45°→𝜙=+ 45° - rotação em torno do eixo Z de −45°→ 𝜙=−45°
- rotação em torno do eixo X de +45°→𝜃=+45° - rotação em torno do eixo X de −45°→𝜃=−45°
1. Adquirir os dados da IMU rotacionando a placa. Lembre-se, rotação nos ângulos de arfagem (pitch – Ângulo ψ), rolagem (roll - Ângulo θ) e guinada (yaw - ângulo ɸ). Atenção ao apontamento dos eixos coordenados de cada sensor. Assim, faça a rotação de ângulos determinados. A matriz obtida com tal procedimento, é denominada “normal.txt”.
2. Fazer os gráficos dos dados obtidos da IMU
3. Interpretar os dados obtidos por cada sensor durante a
manobra, relacionando as medidas do acelerômetro,
magnetômetro e giroscópio com cada etapa da manobra realizada.
O processo de calibração do acelerômetro e do giroscópio consiste em,
𝑠𝑒𝑛𝑠𝑜𝑟_𝑐𝑎𝑙𝑖𝑏𝑟𝑎𝑑𝑜𝑒𝑖𝑥𝑜 = 𝑠𝑒𝑛𝑠𝑜𝑟_𝑚𝑜𝑣𝑖𝑚𝑒𝑛𝑡𝑜𝑒𝑖𝑥𝑜 + Desvioeixo
Os gráficos obtidos irá mostrar o comportamento temporal de acelerações e das taxas de rotação, em função do tempo para cada coluna das matrizes supracitadas, comparando-se, portanto, as saídas calibradas com as não calibradas.
E quanto ao magnetômetro...
Para este sensor as medidas devem ser normalizadas e o vetor ideal é [0 1 0]. Após normalização aplicar o mesmo procedimento de acelerômetro e giroscópio.
Dados calibrados = valor movimento da placa + desvio Em que:
desvio = valor ideal – valor médio da placa parada Observações:
✓ desvio vetor
✓ Magnetômetro e acelerômetro Utilizar valor normalizado.
✓ Se optar para o valor do campo magnético utilizar as coordenadas da UFABC
• Os dados do acelerômetro, do giroscópio e do magnetômetro são dados em unidades de sensibilidade LSB, como LSB/g, LSB/°/s e LSB/Gauss, respectivamente para cada sensor.
• Para facilitar os cálculos e as análises posteriores, estas unidades devem ser convertidas para o sistema internacional
de unidades: m/s2 para o acelerômetro, rad/s para o giroscópio
e micro Tesla para o magnetômetro (se for utilizar a intensidade).
MÉTODO TRIAD
a) Normalize os vetores acelerômetro e magnetômetro
a) Obtenha os vetores no referencial inercial a partir dos vetores no referencial do corpo
c) Aplique o método TRIAD
d) Apresente os gráficos das soluções obtidas.
MÉTODO DE INTEGRAÇÃO POR TRAPÉZIOS
a) Integre a velocidade angular obtida pelo giroscópio, pelo método dos Trapézios, a fim de obter os ângulos de Euler.
a) Apresente os gráficos das soluções obtidas. - Cálculo do Erro Relativo
Calcule o erro relativo de cada um dos ângulos de Euler a partir seguinte expressão
𝑒𝑟𝑟𝑜 𝑟𝑒𝑙𝑎𝑡𝑖𝑣𝑜 = 𝑣𝑎𝑙𝑜𝑟𝑇𝑅𝐼𝐴𝐷 − 𝑣𝑎𝑙𝑜𝑟𝐺𝐼𝑅𝑂𝑆𝐶Ó𝑃𝐼𝑂 𝑣𝑎𝑙𝑜𝑟𝐺𝐼𝑅𝑂𝑆𝐶Ó𝑃𝐼𝑂
TRIAD
• Tríade de vetores ortogonais no sistema de
referência e uma tríade correspondente no sistema do corpo.
• Matriz de atitude (cossenos diretores):
– Transformação: ,
• Forma-se a tríade de e e a tríade de e .
TRIAD
• Duas estimativas de atitude do TRIAD:
– Tratam as medidas assimetricamente.
– Para o tratamento simétrico, define-se:
– e e similarmente.
• Terceira estimativa de atitude:
e
• Método de calibração de magnetômetro
performs magnetometer calibration from a set of data using Merayo technique with a non iterative algoritm
J.Merayo et al. "Scalar calibration of vector magnemoters" Meas. Sci. Technol. 11 (2000) 120-132.
• Método de calibração de magnetômetro geométrico