AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Algorithme "Direction Cosine Matrix"

Description détaillée

Le but principal de l’algorithme DCM (contraction de Direct Cosine Matrix) est d’être capable à tout moment de savoir dans quelle position et orientation se trouve un objet dans un repère donné.
Il est couramment utilisé dans la stabilisation d’entité comme une caméra par exemple, un avion ou encore dans notre cas présent, un hélicoptère.
En effet grâce à un tel algorithme, on est capable d’estimer avec précision et donc d’asservir le « pitch » (tangage), le « roll » (roulis) et le « yaw » (lacet) d’un véhicule.
Ce module utilise les modules accelero3d, gyro3d et compass3d pour accéder aux capteurs permettant de mesurer les accélérations, les vitesses angulaires et les composantes magnétiques.
La configuration du module est réalisée dans le fichier avrio-config-dcm.h

Graphe de collaboration de Algorithme "Direction Cosine Matrix":

Structures de données

struct  xDcmAttitude
 Données renvoyées par le module grâce à pxDcmAttitude() Plus de détails...
 

Fonctions

int iDcmInit (void)
 Initialise le module. Plus de détails...
 
int iDcmLoop (void)
 Boucle de calcul du filtre DCM. Plus de détails...
 
const xDcmAttitudepxDcmAttitude (void)
 Renvoie les valeurs actuelles du filtre DCM. Plus de détails...
 

Macros

#define DCM_NOT_READY   1
 Valeur renvoyée par iDcmLoop() indiquant que les valeurs d'attitude renvoyées par pxDcmAttitude() ne sont pas encore valides.
 

Définitions de type

typedef struct xDcmAttitude xDcmAttitude
 

Documentation des fonctions

int iDcmInit ( void  )

Initialise le module.

Cette fonction prend un certain temps de l'ordre de 2 secondes afin d'effectuer un calage du gyroscope par moyennage.

Renvoie
0 en cas de succès, une valeur négative sur erreur.
int iDcmLoop ( void  )

Boucle de calcul du filtre DCM.

Cettte fonction doit être appellée à une cadence corespondant au paramètre CFG_DCM_DT défini dans le fichier avrio-config-dcm.h

Renvoie
0 en cas de succès, une valeur négative sur erreur, DCM_NOT_READY tant que le filtre n'a pas convergé (données inexploitables)
const xDcmAttitude* pxDcmAttitude ( void  )

Renvoie les valeurs actuelles du filtre DCM.

Ces valeurs ne sont valables que si iDcmLoop() renvoie 0.

Renvoie
Attitude du mobile