Calibração de Sensores na prática

Este post faz parte da série Calibração de Sensores. Leia também os outros posts da série:

Vimos na parte I sobre os erros agregados aos sensores e a teoria de como corrigi-los para obter uma melhor leitura da grandeza real mensurada. Agora, nesta parte II vamos colocar em prática e fazer a correção de uma placa inercial.

 

Vale salientar que estas correções apenas possibilitam que os valores mensurados sejam de maior confiança. Para uma utilização de mais alto nível destas informações, algum algoritmo será necessário, como, por exemplo, obter os ângulos de Euler ou a rotação por Quatérnions. Observe que o objetivo deste procedimento é calibrar e obter a relação entre os valores do sensor e a grandeza real a ser medida. Sendo assim, não será abordada a filtragem de sinais, seja por passagem/rejeição de banda ou o tão conhecido filtro de Kalman.

 

Nesta segunda parte será abordado um estudo de caso utilizando um sensor inercial MPU9250. Foram utilizados métodos manuais de calibração para as três grandezas: aceleração, velocidade angular e campo magnético. Ao final, será apresentada uma comparação entre os valores típicos fornecidos pelo datasheet em relação aos valores obtidos pela calibração.

 

Placa MPU9250
Figura 1: Placa MPU9250

 

Alguns sensores, como este, possuem registradores internos que podem ser utilizados como parâmetros de calibração. Desta forma, basta executar algum procedimento de calibração e inserir os valores obtidos nos seus respectivos registradores. Entretanto, cada componente possui a sua convenção e o processo se torna mais específico. Aqui será apresentada uma forma de calibrar e utilizar suas informações de maneira genérica, apenas via software.

 

Acelerômetro

 

Este sensor, apesar do nome ser um pouco equivocado, na verdade mede a força resultante aplicada sobre ele. Contudo, é possível medir a gravidade como uma aceleração, mesmo sabendo que ela se trata na verdade de uma força. Desta forma, vamos utilizar a gravidade a nosso favor.

 

O acelerômetro possui em geral três eixos ortogonais. Cada eixo é composto por um conjunto massa-mola que se desloca (ou deforma) em um único sentido. A partir de uma massa conhecida e invariante, é possível calcular a força aplicada sobre ela mediante a deformação do material que a sustenta. É o mesmo princípio de uma balança de mola suspensa. Aplicando-se a lei de Newton F = m.a obtém-se a aceleração resultante. Observe a Figura 2a.

 

Para a calibração deste sensor, vamos utilizar a gravidade como uma referência de aceleração. Para facilitar ainda mais, podemos considerar a gravidade como uma aceleração normal ao plano horizontal. Observe a Figura 2b para este posicionamento. Para facilitar a movimentação do sensor a exatos 90° foi impresso um esquadro em impressora 3D. O modelo pode ser obtido em [4]

 

       

 

Figura 2: a) Balança de mola; b) suporte em 3D para fixação do acelerômetro.

 

Neste sensor, o processo de calibração é bastante intuitivo: vamos posicionar o acelerômetro em todos os extremos para cada eixo. Ou seja: +x, -x, +y, -y, +z e -z. São as seis faces de um cubo. Desta forma, cada eixo será alinhado com a aceleração da gravidade em ambos os sentidos: positivo e negativo. Assim, teremos os valores do sensor para as medidas de +9.81m/s² e -9.81m/s². Aplicando-se para os três eixos, obtemos o gráfico de acordo com a Figura 3.

 

Calibração de Sensores na prática - Gráfico com as leituras em X, Y e Z ao longo do tempo
Figura 3: Gráfico com as leituras em X, Y e Z ao longo do tempo

 

Neste gráfico, o eixo X representa a escala de tempo em unidades de 10 ms, enquanto o eixo Y representa o valor lido do sensor. Observe as 6 regiões nítidas onde o sensor foi posto com a gravidade perpendicular a cada eixo. Cada um destes intervalos são utilizados como amostras para a calibração do sensor. Com a ajuda de um software de planilhas, podemos obter a tabela abaixo:

 

Tabela 1: Amostragem para cada eixo

 

Positivo

Negativo

Mínimo

Máximo

Range

X

750-850

600-680

-7970.56

8380.33

16350.89

Y

480-540

340-410

-8011.14

8359.86

16371.00

Z

025-125

190-280

-8304.48

8232.06

16536.54

 

Nesta tabela, as colunas possuem o seguinte significado:

  • Positivo: Faixa de valores estáveis com leitura positiva (+G);
  • Negativo: Faixa de valores estáveis com leitura negativa (-G);
  • Mínimo: Média dos valores mínimos, na faixa ‘Negativo’;
  • Máximo: Média dos valores máximos, na faixa ‘Positivo’;
  • Range: Variação de toda a escala entre ‘Mínimo’ e ‘Máximo’.

 

É importante obter as amostras de cada eixo durante um intervalo em que o sensor fique imóvel. Observe as variações durante o movimento de transição entre cada eixo, todos estes valores devem ser ignorados. Aplicando-se as equações apresentadas na Parte I deste artigo, obtemos a seguinte tabela com os parâmetros de calibração:

 

Tabela 2: Valores de Offset e Ganho calculados

 

OFFSET

GANHO

X

204.883

0.001199935049387

Y

174.360

0.001198460692688

Z

-36.210

0.001186463431891

 

Onde:

  • Offset: Valor apresentado pelo sensor para uma leitura sem aceleração;
  • Ganho: Fator de escala para converter o valor numérico em aceleração m/s².

 

Observe que os eixos X e Y possuem valores bem próximos, enquanto o eixo Z acaba destoando-se dos demais. É uma característica comum nos sensores de aceleração.

 

Girômetro

 

Um outro sensor bem comum em placas inerciais MEMS nos fornecem a leitura de velocidade angular. São, muitas vezes, erroneamente chamados de giroscópios, que possuem uma aplicação um pouco diferente, apesar de baseadas no mesmo princípio.  Estes sensores possuem uma massa que vibra a uma determinada frequência, na ordem de 10 a 100 kHz, e que induzem um deslocamento linear quando postas em rotação. A partir desta propriedade, o deslocamento pode ser medido da mesma forma que os acelerômetros, e assim, mensurada a velocidade angular.

 

Diferente dos acelerômetros, este sensor possui um dos seus parâmetros extremamente sensível à variação de temperatura, além de modificar-se levemente a cada power-on. Por este motivo, o valor de offset para o girômetro deve ser recalculado durante cada inicialização. Em termos de curiosidade, este é o motivo pelo qual diversos equipamentos de navegação inercial precisam ficar completamente imóveis durante a sua inicialização.

 

O fator de escala (ou ganho) pode ser calculado apenas uma vez e mantém-se inalterado para a variação de temperatura. Entretanto, vale salientar que, cada sensor possui suas características e é imprescindível a leitura e compreendimento de seu datasheet.

 

Para a calibração de escala, é preciso que os valores do sensor já estejam corrigidos de offset. Neste caso, esta correção pode ser feita a priori, embarcada, ou mesmo através de um software de planilhas, junto com a calibração de escala.

 

Da mesma forma que o acelerômetro, o objetivo da calibração é submeter o sensor a entradas conhecidas e compará-las com os valores lidos. Uma das formas que podem ser utilizadas é rotacionar o sensor em velocidades angulares conhecidas, de acordo com a Figura 4a. Porém, a utilização de fios para conexão com o sensor seria impraticável. Uma outra abordagem para a calibração é utilizar a integral numérica para calcular o ângulo e rotacionar o sensor em exatos 90 graus (ou outro ângulo conhecido) conforme a Figura 4b. Neste artigo, será abordado esta segunda forma de calibração.

 

  Calibração de Sensores na prática

Nivelado                                   90 graus                  Nivelado

Figura 4: a) Calibração por meio de velocidade angular; b) Calibração por meio de ângulo.

 

Para a calibração utilizando a integral numérica, deve ser calculado o ângulo através do somatório de cada leitura em função do intervalo de tempo.  Ou seja:

α₀ = 0

(1)

αₙ = αₙ-₁ + wᵣ × ∆t

(2)

 

Onde, α₀ é o ângulo inicial (nivelado); αₙ é o ângulo resultante; αₙ-₁ é o ângulo anteriormente calculado; wᵣ é a velocidade angular lida e calibrada (real); e ∆t o intervalo de tempo entre as leituras. Contudo, sabe-se que:

wᵣ = (wₛ - B) × E

(3)

 

Onde, wₛ é a velocidade angular lida sem calibrar; B é o fator de bias e E o fator de escala. Assim, o valor de bias deve ser inicialmente calculado pelas primeiras amostras, em repouso, enquanto o valor de escala deve ser inicializado com o valor típico do datasheet. A partir deste ponto, o valor de escala deve ser incrementalmente ajustado para que o valor final do ângulo calculado pela integral seja igual ao ângulo real em que o sensor foi movimentado. Este procedimento deve ser repetido para todas as 6 possibilidades: +wx, -wx, +wy, -wy, +wz e -wz. Uma maneira mais simples é agrupar os movimentos de ida e volta num mesmo eixo. A figura 5 apresenta estes movimentos.

 

Amostragem de dados para calibração do girômetro.
Figura 5: Amostragem de dados para calibração do girômetro.

 

Neste gráfico, observa-se que, para cada um dos três eixos, o sensor foi posto em repouso e nivelado. Após, rotacionado em 90° e retornado ao repouso. Nesta abordagem, temos duas condições inerentes: O ângulo máximo é de 90° além de o ângulo final devendo ser igual ao inicial. Desta forma, através dos parâmetros de Bias e Escala, podemos relacionar que um fator de Bias correto nos garante que após retornar, os ângulos inicial e final sejam iguais. Pos outro lado, o fator de Escala correto nos garante que o ângulo calculado seja exatamente os 90 graus movimentados.

 

A partir destes dados coletados, foi feita a calibração do sensor e obtidos os parâmetros apresentados na Tabela 3.

 

Tabela 3: Parâmetros do girômetro

 

X

Y

Z

BIAS*

-33.512

-20.098

-61.854

ESCALA

0.0308696055

0.0306110787

0.030567988

 

Atente que o Bias (*) deve ser recalculado a cada inicialização do sensor. Estes sensores de velocidade angular possuem uma característica chamada “Drift” (derrapagem). Este comportamento do sensor faz com que o seu valor de Bias se altere ao longo do tempo. De fato, apesar de ser monitorado ao longo do tempo, esta variação se dá pela temperatura. É possível analisar no datasheet de cada sensor essa parametrização. Entretanto, para que esses parâmetros sejam corrigidos em calibração, será necessária a utilização de uma câmara aquecida/resfriada para que o sensor seja submetido a diferentes valores de temperatura.

 

A Figura 6a apresenta esta variação de Bias ao longo do tempo, ao passo que a Figura 6b apresenta a variação de temperatura ao longo deste mesmo intervalo de tempo. Observe a semelhança no gráfico.

 

  

Figura 6: a) Variação de Bias; e b) Variação de temperatura.

 

Nesta análise, o tempo de amostragem foi de pouco mais de 60000 segundos, ou seja, 17h de operação em repouso. Os valores de Bias já estão aplicados do fator de escala, mostrando valores em °/s.

 

Magnetômetro

 

É um sensor que nem todas as placas inerciais possuem. Em geral, utiliza-se a nomenclatura de graus de liberdade para indicar a quantidade de eixos-sensores existentes em cada placa. Assim, uma unidade inercial dita “9-DOF” (Degree of freedom) nos indica que ela possui os três sensores: Acelerômetro / Girômetro / Magnetômetro. Ao passo que, uma unidade “6-DOF” não possui este último. Neste caso, um sensor a parte costuma ser adicionado à placa.

 

O uso do magnetômetro é referente ao direcionamento, da mesma forma que uma bússola. No entanto, a bússola é um componente magnético e mecânico cuja referência se orienta com as linhas do campo magnético terrestre, e por consequência, nos indica a direção do norte magnético, conforme a Figura 7a.

 

Por outro lado, um magnetômetro é um sensor. Este nos fornece a intensidade das linhas de campo que incidem sobre seus elementos sensores. Por se tratar de uma grandeza vetorial, é possível fazer a leitura de cada eixo independente e a partir dos seus valores. Desta forma, medindo-se os ângulos formados entre estas componentes, é possível obter-se a direção em que o sensor se orienta. Figura 7b.

 

  

Figura 7. a) Linhas de campo magnético terrestre; b) Vetor magnético f e suas componentes.

 

Entretanto, diferente da aceleração da gravidade, é praticamente impossível determinar a direção do campo magnético. Lembre-se que existe, também, uma componente vertical e normal ao plano horizontal. Por outro lado, a finalidade deste sensor é nos fornecer a direção, em graus, entre a placa inercial e o norte magnético. Considerando-se esta aplicação, é desnecessário conhecer-se a magnitude do campo mensurado. Desta forma, simplifica-se o processo de calibração.

 

Neste processo, o sensor deve ser posto nivelado numa superfície. Para cada eixo, este deve ser rotacionado, pelo menos, duas voltas completas. Nesta situação, é importante que cada eixo a ser rotacionado seja posicionado perpendicular ao plano horizontal. Desta forma, ao ser rotacionado, os demais eixos serão expostos a uma mesma intensidade de campo magnético. A Figura 8 apresenta a leitura do magnetômetro sendo rotacionado em seus três eixos.

 

Dados do magnetômetro sendo rotacionado.
Figura 8: Dados do magnetômetro sendo rotacionado.

 

Observe que, para um eixo estável, os outros dois apresentam uma característica oscilatória, em que as componentes do campo magnético foram segmentadas. Neste caso, as informações foram dispostas ao longo do tempo. Podemos, então, exibi-las uma em função de outras. A Figura 9a apresenta estes dados relacionados aos pares de eixos, sendo uma para cada eixo rotacionado. Observe que estes valores formam uma circunferência. Entretanto, esta circunferência pode ter anomalias como estar fora de centro ou ter uma curvatura elíptica.

 

Analisando estas duas anomalias, é possível relacionar este desvio do centro como um valor constante para cada eixo, então utilizado como a calibração de Bias. Quando os dois eixos estão equivalentes em amplitude, a elipse se torna uma circunferência. Esta constante é o fator de Escala. Observe a Figura 9b em que as três elipses se tornam circunferências concêntricas.

 

Figura 9. a) Valores amostrados relacionados em pares; b) Valores corrigidos de Bias e Escala.

 

Após ajustadas as circunferências, obteve-se os parâmetros de correção para o sensor, exibidos na Tabela 4.

 

Tabela 4: Parâmetros do Magnetômetro

 

X

Y

Z

BIAS

25

62.5

-23.5

ESCALA

0.9615

1.0205

0.9805

 

Utilizando um software de análise e processamento de dados, como MatLab ou SciLab, é possível obter o gráfico em 3D de todas as componentes do magnetômetro. Observe a Figura 10 uma esfera formada pelas três circunferências.

 

Dados do magnetômetro em 3 dimensões.
Figura 10: Dados do magnetômetro em 3 dimensões.

 

 

Saiba mais sobre sensores

 

Webinar Gravado: Adquirindo padrões de sensores com FFT

Sensor de proximidade VL6180x: uma implementação OOP com PSoC-4

Introdução à Fusão de Sensores - Parte 1

 

 

Referências

 

[1] BEKIR, E. Introduction to Modern Navigation Systems. London: World Scientific Publishing Co, 2007. 240 p.

[2] GROVES, P. D. Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems. Boston: Artech house, 2008. 505 p.

[3] NASA. National Aeronautics and Space Administration. 2013. Disponível aqui.

[4] PEREIRA, M. O. Estrutura em 3D para posicionamento de uma IMU em suas três faces. Download em: https://www.thingiverse.com/thing:2841844

 

Referências das figuras:

 

1) https://http2.mlstatic.com/D_Q_NP_874071-MLB26622914566_012018-Q.jpg

2.a) https://5.imimg.com/data5/NP/KO/MY-2421906/spring-balances-500x500.jpg

7.a) [1] BEKIR
Demais figuras: Autor

Outros artigos da série

<< Introdução à Calibração de Sensores
Este post faz da série Calibração de Sensores. Leia também os outros posts da série:

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Mateus Pereira
Entusiasta em aviação e eletrônica desde pequeno. Formado pela Universidade Federal de Lavras em Ciência da Computação, com ênfase em sistemas embarcados e posteriormente mestrado no Instituto Tecnológico de Aeronáutica em Engenharia Eletrônica e Computação. É também Piloto Privado pelo Aeroclube de São José dos Campos.

1
Deixe um comentário

avatar
 
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Antonio O Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Antonio O
Visitante
Antonio O

Muito legal Mateus. Vou usar no controle de atitude do nosso satélite. Antonio