![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
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
![]() |
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 xDcmAttitude * | pxDcmAttitude (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 |
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.
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
const xDcmAttitude* pxDcmAttitude | ( | void | ) |
Renvoie les valeurs actuelles du filtre DCM.
Ces valeurs ne sont valables que si iDcmLoop() renvoie 0.