Capteur IMU pour la robotique

IMU e robotica: tutto quello che devi sapere

This entry was posted in Confronti, test e presentazione dei prodotti, Guide e tutorial on by Nunzia Cicorella.

In questo articolo, troverai informazioni utili per l’acquisto dell’IMU più adatta al tuo capitolato tecnico.
Scoprirai come funziona un’IMU e come interpretare i principali parametri.

Alla fine dell’articolo, troverai anche dei link che ti indirizzeranno verso test e risorse.

Definizione – Cos’è un IMU?

Un’unità di misura inerziale (IMU) è un componente elettronico che fa parte della famiglia dei sensori. La sua funzione è quella di misurare l’accelerazione del sensore, la velocità angolare e l’orientazione con il supporto di una combinazione di accelerometri, di giroscopi e magnetometri.

L’IMU di tipo I è composta da accelerometri e giroscopi, mentre l’IMU di tipo II integra anche i magnetometri.

Gli accelerometri, giroscopi e magnetometri misurano i dati relativi a un solo asse (X : pitch, Y : roll, Z : yaw). Per ottenere informazioni sui 3 assi, è necessario integrare 3 componenti per ciascuno (accelerometri, giroscopi e magnetometri) per un IMU di tipo II. Un sensore IMU tipo ha 9 DoF (gradi di libertà) che includono:

  • 3 accelerometri
  • 3 giroscopi
  • 3 magnetometri

Alcuni IMU possono avere gradi di libertà aggiuntivi con un sensore di temperatura, un sensore GPS, un sensore di pressione, ecc.
Basandosi sull’accelerazione, è possibile eseguire calcoli di attitudine, velocità e posizione.
Grazie ai giroscopi, è possibile eseguire il calcolo della posizione angolare.
Questi dati, forniti dall’IMU, sono fondamentali nella robotica mobile, poiché completano le misurazioni del LiDAR e dell’odometria.

Scopri la nostra gamma di giroscopi e centrali inerziali.

Fisica – come funziona un’IMU?

Per comprendere il funzionamento di un’IMU, è necessario iniziare analizzando ciascun sottocomponente:

Sottocomponente 1: l’accelerometro

Un accelerometro è un dispositivo elettromeccanico utilizzato per misurare le forze di accelerazione. Queste forze possono essere:

  • Statiche, come la forza di gravità
  • Dinamiche, come le forze di movimento o di vibrazione

L’accelerazione è la misura della variazione della velocità, o anche chiamata, velocità divisa per il tempo.
Per esempio, una bicicletta che accelera da ferma fino a 30 km/h in cinque secondi ha un’accelerazione di 6 km/h al secondo (30 diviso 5).

Sottocomponente 2: il giroscopio

Un giroscopio è un dispositivo utilizzato per misurare o mantenere l’orientamento e la velocità angolare. Si tratta di una ruota rotante o di un disco, il cui asse di rotazione è libero di assumere qualsiasi orientamento autonomamente.

Durante la rotazione l’orientamento di questo asse non è influenzato dall’inclinazione o dalla rotazione di supporto, grazie alla conservazione del momento angolare.

Sottocomponente 3: magnetometro

Un magnetometro è un dispositivo che misura il magnetismo, ovvero:

  • La sua direzione
  • La sua forza
  • Il cambiamento relativo ad un campo magnetico in un determinato luogo

Una bussola è uno di questi dispositivi in quanto misura la direzione di un campo magnetico ambientale. In questo caso, il campo magnetico è quello terrestre.

ROS – Trasferimento dei dati dell’IMU

Tutti i sensori IMU compatibili con ROS pubblicano i loro dati sul topic / imu secondo il formato di messaggio sensor_msgs/Imu.msg:

std_msgs/Header header geometry_msgs/Quaternion orientation float64[9] orientation_covariancegeometry_msgs/Vector3 angular_velocity float64[9] angular_velocity_covariancegeometry_msgs/Vector3 linear_acceleration float64[9] linear_acceleration_covariance

Orientamento

Le rotazioni 3D e l’orientamento possono essere rappresentate utilizzando la forma degli angoli di Eulero o sotto forma di Quaternione. 

Angoli di Eulerio

Gli angoli di Eulero si compongono di tre valori angolari per gli assi X, Y e Z. Ogni valore di rotazione viene applicato in modo sequenziale, ovvero uno dopo l’altro.

Vantaggi

Gli angoli di Eulero hanno un formato intuitivo “leggibile ad occhio nudo”.

Limitazioni

In alcune configurazioni, gli angoli di Eulero subiscono una perdita di libertà. Infatti, durante l’applicazione successiva delle tre rotazioni, è possibile che la prima o la seconda rotazione faccia sì che il terzo asse punti nella stessa direzione di uno degli assi precedenti, in modo che il terzo valore di rotazione non può essere applicato intorno ad un singolo asse.

Quaternioni

I quaternioni possono essere utilizzati per rappresentare l’orientamento o la rotazione di un oggetto.
Sono rappresentati da quattro numeri (riferiti alle unità x, y, z e w).

Occorre tenere presente che queste quantità non rappresentano angoli o assi e che normalmente non è mai necessario accedervi direttamente.

Vantaggi

Le rotazioni dei quaternioni non subiscono la perdita di un DoF.

Limitazioni

Un singolo quaternione non può rappresentare una rotazione superiore a 180 gradi in qualsiasi direzione e non è intuitivamente comprensibile.

Velocità angolare

La velocità angolare è rappresentata da un vettore tridimensionale (x, y e z), i cui valori dipendono dagli assi x, y e z.

Accelerazione lineare

L’accelerazione lineare è rappresentata da un vettore tridimensionale (x, y e z), i cui valori di accelerazione lineare dipendono dagli assi x, y e z.

Covarianza

Nel caso dei sensori, la covarianza è il coefficiente di affidabilità relativo alla precisione del sensore.

La covarianza può essere statica in funzione delle prestazioni del sensore oppure continuamente aggiornata, cambiando nel tempo a seconda della stima della precisione.

Lo stesso vale per l’IMU, che può avere una covarianza statica o dinamica. Ogni parametro ha un coefficiente di covarianza associato, codificato o elaborato dal software del sensore, che indica fino a che punto questo valore può essere considerato affidabile.

Panoramica delle caratteristiche dell’IMU

Consumo energetico

Per determinare il fabbisogno energetico del tuo progetto robotico, è necessario tener conto della modalità e della durata di funzionamento della macchina.
Questi parametri sono importanti se il sensore funziona a batterie:

  • Tensione di alimentazione in volt
  • Corrente di esercizio in ampere
  • Potenza in watt

Caratteristiche del sensore

La risoluzione numerica descrive la capacità di rilevamento globale del sensore ed è composta da due parti:

1. La distanza => quantità di movimento che i sensori possono prendere in considerazione:

  • Nel caso di un accelerometro, questo si misura in forze G;
  • I giroscopi sono classificati in base alla velocità di rotazione angolare che possono quantificare in gradi/secondo;
  • I magnetometri misurano le loro capacità in µT, che possono variare a seconda dell’asse del sensore (x, y, z).

2. La sensibilità => numero assoluto che rappresenta la più piccola quantità di cambiamento che può essere misurata e rilevata. Per i sensori, questo è direttamente legato al numero di bit riservati per il sensore stesso. Più è alto il numero di bit, maggiore sarà la sensibilità.

Offset rispetto alla gravità zero valore dell’accelerometro quando nessuna forza esterna viene applicata, che rappresenta l’errore minimo rilevato.

Offset del tasso zero: valore del giroscopio in assenza di movimento angolare, che può dipendere dalla temperatura.

Flusso di dati: il numero di misurazioni effettuate durante un determinato intervallo di tempo. Durante la scelta dell’IMU, è necessario assicurarsi che i tassi dei sensori supportati corrispondano alle esigenze specifiche per le applicazioni.

Densità del rumore: definita in unità per larghezza di banda della radice quadrata, tipicamente:

  • ug/sqrt(Hz) per gli accelerometri
  • deg/s/sqrt(Hz) per i giroscopi

Banda passante: la gamma di frequenze entro la quale un accelerometro o un giroscopio funziona.

Interfacce: quale cavo e protocollo di comunicazione utilizza l’IMU e il sistema integrato?

Gamma di temperatura: le sonde di temperatura ambientale minima e massima che possono funzionare in sicurezza per fornire misurazioni precise.

Parametri in uscita

Precisione statica: precisione dell’uscita del sensore quando il dispositivo è relativamente stabile/immobile;

Precisione dinamica: precisione dell’uscita del sensore quando il dispositivo è in movimento;

Errore di rotazione: differenza tra il vettore di uscita e il vettore reale, misurato in gradi;

Heading Error : differenza tra l’uscita dell’asse yaw e il suo valore reale, misurato in gradi;

Heading Drift : errore accumulato nel tempo;

RAW Accel/Gyro/Mag : uscita grezza di ciascun sensore, prima di qualsiasi elaborazione;

Calibrated Accel/Gyro/Mag: uscita di ciascun sensore dopo che è stata applicata la fusione dei sensori per elaborare e filtrare ogni segnale.

Calibrazione

Dopo aver esaminato i parametri e le uscite dei sensori, è necessario considerare un altro aspetto: la calibrazione. Le opzioni di calibrazione scelte dipendono dal budget e dalle esigenze del progetto.

Nominale: la calibrazione nominale utilizza i valori medi del sensore per ottenere prestazioni medie;

Per dispositivo: la calibrazione per dispositivo consente di calibrare alcuni fattori, come il guadagno del sensore, specifici per ciascun componente. A seconda dell’applicazione, si può scegliere di calibrare su un singolo asse o su più assi del progetto;

Dinamica: se ritenete che la calibrazione nominale sia sufficiente, l’uscita del sensore può comunque essere migliorata dinamicamente sul campo. Le caratteristiche del sensore variano in funzione della temperatura e possono essere regolate progressivamente durante l’utilizzo nella sua applicazione finale.

Algoritmi di fusione dei dati

Il filtro di Kalman

Il filtro di Kalman è un modello di implementazione:

  • In primo luogo, sulla base del suo modello, il filtro fa un’ipotesi sul prossimo valore di uscita del sensore;
  • in seguito, prende il valore misurato confrontandolo con la sua ipotesi;
  • infine, aggiorna il suo modello per fare ipotesi più precise per la misurazione successiva.

Ogni sequenza di dati proveniente dai sensori viene utilizzata per migliorare statisticamente il modello di calcolo delle uscite. Allo stesso tempo, viene valutata anche la precisione dei sensori.

Il modello dipende dall’errore del sensore e dell’applicazione in questione. Per i sistemi robotici mobili, la conoscenza del mondo reale ci dice che gli oggetti fisici si spostano lentamente e di continuo nello spazio, piuttosto che “teletrasportarsi”, come a volte potrebbero suggerire i campioni di coordinate GPS.

Ciò significa che se un sensore, che fino a quel momento ha fornito valori eccellenti e costanti, inizia improvvisamente a rilevare dati improbabili (come avviene nei sistemi GPS/radio quando si entra in un tunnel), l’affidabilità attribuita a quel sensore diminuisce in poche iterazioni nell’arco di pochi millisecondi, finché non torna a fornire valori coerenti.

Si tratta di un approccio decisamente migliore rispetto al semplice calcolo della media poiché il filtro di Kalman può supportare la maggior parte dei suoi sensori che diventano in alcuni casi imprecisi. È sufficiente che almeno un sensore continui a trasmettere valori relativamente affidabili. Garantisce il buon funzionamento del robot finché gli altri non tornano a funzionare.

Il filtro di Kalman è un’applicazione di concetti più generali delle catene di Markov e dell’interferenza bayesiana, che sono modelli matematici che modellano le proprie previsioni in modo iterativo, basandosi sulle evidenze raccolte.

Filtri PID

I sistemi robotici più semplici possono essere dotati di filtri PID. Possono essere considerati come filtri di Kalman primitivi alimentati da un singolo sensore, con tutte le regolazioni iterative eliminate e sostituite da tre valori fissi (kp, ki e kd).

Si tratta di un sistema di correzione che regola l’ingresso attraverso l’anello di controllo per ottenere l’uscita corretta.

Anche quando i valori PID vengono impostati automaticamente o manualmente, l’intero processo di “messa a punto” (aggiustare, rubare, valutare, ripetere) è una versione esternalizzata di Kalman con un umano che si occupa della fase di propagazione delle convinzioni.

Filtri personalizzati

I veri sistemi sono spesso ibridi, posizionandosi da qualche parte tra i due estremi.

Packages ROS per l’IMU

Se si implementa il software del robot su ROS, sarà più facile acquistare sensori compatibili con ROS.
Ciò significa che i produttori hanno già sviluppato un pacchetto ROS per far interagire il sensore con ROS. Questo vi permetterà di guadagnare tempo.

Per quanto riguarda l’IMU, il sensore pubblicherà i dati grezzi o elaborati in funzione delle implementazioni dell’IMU, sul topic/imu. In seguito, su ROS è possibile abbonarsi al topic per ottenere dei dati per utilizzarli per la navigazione. A proposito dei pacchetti ROS, alcuni sono già implementati e aggiornati:

  • imu_transformer: questo package fornisce una combinazione di nodo/nodello che può essere utilizzata per trasformare i dati IMU da un frame TF a un altro;
  • imu_tools :
  • Imu_filter_madgwic: filtro che fonde le velocità angolari, le accelerazioni e (opzionalmente) le letture magnetiche di un dispositivo IMU generico in un orientamento, basato sull’algoritmo di Sebastian Madgwick;
  • Imu_complementary_filter: filtro che fonde le velocità angolari, le accelerazioni e (facoltativamente) le letture magnetiche di un dispositivo IMU generico in un quaternione per rappresentare l’orientamento del dispositivo rispetto al frame globale, basato sull’algoritmo di Roberto G. Valenti
  • ;
  • rviz_imu_plugin: un plugin per RViz che visualizza sensor_msgs::Imu messages
  • imu_utils: Package che permette di monitorare le prestazioni dell’IMU in Matlab.

Come scegliere un’IMU?

La scelta dipenderà dalle esigenze del tuo progetto. L’IMU più economica genererà solo dei valori grezzi, mentre l’UM7 filtra i valori elaborati e li pubblica direttamente in un messaggio ROS.

Le prestazioni sono molto simili anche per le IMU più costose. La differenza risiede nei servizi e nelle implementazioni aggiuntive:

    • Calcoli integrati;
    • Microcontrollore integrato;
    • Libreria per schede (Arduino, Raspberry Pi, ecc.);
    • Compatibilità con ROS;
    • Interfaccia;

Quali sono le prestazioni dell’IMU?

Un sensore IMU è un componente utile da aggiungere al tuo robot. Ti fornirà informazioni sull’atteggiamento, l’orientamento, la posizione, la velocità, l’accelerazione e la velocità di rotazione se i valori sono calcolati.

Tuttavia, devi tenere presente che l’IMU è soggetta a errori di deriva. Infatti gli errori si accumulano nel tempo, poiché i nuovi valori sono basati su quelli precedenti.

In piu, visto che l’IMU si serve del campo magnetico per calcolare i valori, può essere influenzata da altri campi magnetici (motori, strutture metalliche, etc) che possono generare grandi errori.

Si possono però, implementare delle correzioni e dei filtri per ridurre questo errore, ma l’errore IMU deriverà e aumenterà continuamente.

Un modo per risolvere questo problema è prendere in considerazione il valore della covarianza (coefficiente di fiducia), che può evolversi nel tempo se troppo dimanico.

Un altro metodo è aggiungere un sensore GPS. Infatti, il segnale GPS può aggiornare il valore dell’IMU e correggere il suo errore di deriva.

Cerchi risultati concreti? Troverai online un test di visualizzazione di dati di un’IMU e di un sensore EMG collegato a un polso, che ti darà un’idea dell’errore dell’IMU (parte 2.1 e 3.1).

Questo articolo elenca e descrive tutti i bias dell’IMU che portano a errori.

Troverai qui un metodo rapido ed efficace per valutare e scegliere un’IMU.

Conclusione: vantaggi e svantaggi dell’IMU

Vantaggi dell’IMU

  • Il sistema di navigazione inerziale è indipendente da qualsiasi informazione esterna e non consuma troppa energia;
  • Il sistema di navigazione inerziale può fornire posizione, velocità, comportamento, dati angolari, e l’informazione di navigazione risultante è continua;
  • Misura ad alte frequenze e buona stabilità;

Svantaggi dell’IMU

  • Grazie alle informazioni del sistema di navigazione integrato, l’errore di posizionamento aumenta nel tempo e la precisione a lungo termine resta debole;
  • È necessario un lungo tempo di allineamento iniziale prima di ogni utilizzo;
  • Le informazioni temporali non possono essere fornite;