Académique Documents
Professionnel Documents
Culture Documents
METGE
L’un des points sensible des systèmes de drone aérien, c’est la localisation du vecteur
aérien et sa capacité à évoluer de façon autonome dans son environnement. Les UAV son
ainsi équipés de nombreux capteurs leur permettant de se géo-localiser et de déterminer
avec exactitude leur position dans l’espace. Parmi ceux-ci, on trouve les capteurs inertiels,
de type accéléromètres, gyromètres ou encore magnétomètres, permettant au système
d’estimer son orientation.
L’objectif de ce TP est d’estimer l’attitude (orientation dans l’espace) d’une centrale
inertielle « low-cost » à partir des mesures de ces différents équipements, et ce sous
certaines hypothèses concernant les accélérations subies par la centrale. Une attention
particulière sera portée aux problèmes de dérive temporelle, point critique de ce type
d’équipement de mesures.
I. Contexte
Tous les aéronefs équipés de fonction d’autopilotage embarquent également des capteurs
permettant d’estimer leur attitude (tangage, roulis, lacet) et éventuellement leur position. Le
biais des gyromètres entraine une lente dérive des angles estimés. Sous l’hypothèse de très
faibles accélérations, l’ajout des accéléromètres et des magnétomètres permet de borner
cette dérive. Ces différentes mesures étant liées non-linéairement aux paramètres à estimer,
l’utilisation d’un filtre de Kalman étendu (Extended Kalman Filter) [1] est proposée.
ψ
λ θ ϕ
φ h
!! !!
!! = ! !, !, ! ∙ !! + !! [2]
!! !!
Les vitesse angulaires mesurées par les gyromètres autour des axes !! , !! et !! sont
reliées aux vitesse angulaire !, ! !" ψ via la matrice Q :
1 0 −!"#$
! !, ! = 0 !"#$ !"#$%&!' [3]
0 −!"#$ !"#$!"#%
Les mesures des gyromètres sont donc liées au vecteur d'état par la relation :
!! ! !!
!
!! = ! !, ! ∙ ! + !! [4]
!" ! !!
!!
!ℎ
!= [13]
!" ! !!! ! ,!
III. Application
Maintenant qu’une partie du contexte et de la théorie ont été détaillées, les données issues
de la centrale inertielle « low-cost », contenues dans le fichier measures.mat, vont être
exploitées afin de retrouver les mouvements appliqués.
III.1 Données
Les données brutes contenues dans le fichier n’étant pas à la bonne échelle, la
transformation linéaire [5] a été appliquée. Les mesures mises à l’échelle sont présentées en
Fig.3.
Il est alors possible d’observer les différentes accélérations qui ont été appliquées à la
centrale. On remarque notamment les accélérations induites par les rotations autour des
axes Y et X, correspondant respectivement aux mouvements sur le roll et sur le picth. On
constate également que le mouvement sur le yaw n’est quasiment pas perceptible. Le
mouvement de lacet n’induit en effet aucune accélération.
Du point de vue des gyromètres maintenant, on note que toutes les rotations sont
parfaitement identifiables. De même, les différents mouvements sont visibles sur les
mesures issues des magnétomètres.
Changement de repère. Pour la suite du TP, il est nécessaire de pouvoir exprimer le
changement de repère entre le repère de navigation ! et le repère du mobile !. Ce
changement de repère est exprimé par la matrice de rotation !, permettant de passer d’un
vecteur exprimé dans la base ! à un vecteur exprimé dans la base !. Cette matrice de
rotation peut être exprimée à partir des matrices de rotation élémentaires autour des axes
!! , !! et !! , rappelées ci-dessous :
1 0 0 !"#! 0 !"#$ !"#$ −!"#$ 0
!! = 0 !"#$ −!"#$ !! = 0 1 0 !! = !"#$ !"#$ 0 [14]
0 !"#$ !"#$ −!"#$ 0 !"#$ 0 0 1
!!
!! = ! ∙ !! + !(1: 3)
!!
!! !
!= !! = ! ! + !(4: 6) [20]
!! !
!!
!! = ! ∙ !! + !(7: 9)
!!
Avec :
1 0 −!"#$
!= 0 !"#$ !"#$%&!' [21]
0 −!"#$ !"#$!"#%
On cherche maintenant à calculer la matrice Jacobienne de ℎ. La matrice Jacobienne est la
matrice des dérivées partielles du premier ordre de ℎ. Cela donne :
!ℎ(1) !ℎ(1) !ℎ(1) !ℎ(1) !ℎ(1) !ℎ(1)
!" !" !" !! !! !!
!ℎ(2) !ℎ(2)
⋯ ⋯
!" !!
⋮ ⋮
!= [22]
⋮ ⋮
!ℎ(5) !ℎ(5)
⋯ ⋯
!" !!
!ℎ(6) !ℎ(6) !ℎ(6) !ℎ(6) !ℎ(6) !ℎ(6)
!" !" !" !! !! !!
Afin de calculer cette matrice Jacobienne, une fonction deriveeR a été implémentée. Elle
prend en paramètre un axe et un angle et retourne la dérivée de la matrice de rotation
associée : !! , !! ou !! .
deriveeR.m
function [dR]=deriveeR(axe,type_angle, angle)
if (strcmp(axe,'x')==1)
if (strcmp(type_angle,'phi')==1)
dR=[0 0 0;0 sin(-angle) cos(-angle); 0 -cos(-angle) sin(-angle)];
else
dR=zeros(3,3);
end
elseif (strcmp(axe,'y')==1)
if (strcmp(type_angle,'teta')==1)
dR=[sin(-angle) 0 -cos(-angle); 0 0 0; cos(-angle) 0 sin(-angle)];
else
dR=zeros(3,3);
end
else
if (strcmp(type_angle,'psi')==1)
dR=[sin(-angle) cos(-angle) 0; -cos(-angle) sin(-angle) 0; 0 0 0];
else
dR=zeros(3,3);
end
end
!! = ! ∙ !! + !! (7: 9) [30]
De la même façon que pour la matrice H, les trois éléments précédemment calculés
correspondent aux mesures des accéléromètres, des gyromètres et des magnétomètres. En
concaténant ces trois résultats, on obtient bien le vecteur de mesure !!!! . Le code ci-
dessous réalise les différentes opérations détaillées jusqu’ici.
h.m
function [z,H]=h(x_av, v_av, m0, g0,magneto, accelero)
%----% parametres
phi=x_av(1);
teta=x_av(2);
psi=x_av(3);
if magneto==1
Hm=[dRx*Ry*Rz*m0, Rx*dRy*Rz*m0, Rx*Ry*dRz*m0, zeros(3,1), zeros(3,1),
zeros(3,1)];
else
Hm=[];
end
H=[Ha; Hg; Hm];
%-----% calcul de h
if accelero==1
za=R*g0+v_av(1:3);
else
za=[];
end
zg=Q*x_av(4:6);
if magneto==1
zm=R*m0+v_av(7:9);
else
zm=[];
end
z=[za;zg;zm];
end
A noter que cette fonction h prend en paramètres différentes valeurs telles que pour
l’accéléromètre ou le magnétomètre. Si les variables accelero et magneto valent 1, alors le
capteur en question est pris en compte dans les mesures. Dans le cas contraires, le filtre de
Kalman n’est appliqué que sur un ou deux des trois capteurs disponibles. Le gyromètre est
pour sa part toujours utilisé. Cette fonctionnalité sera utilisée par la suite afin d’observer
l’impact des différents jeux de mesures.
Toutes les données nécessaires à l’implémentation du filtre de Kalman étendu sont donc
maintenant disponibles.
Figure 4 - Angles et vitesses angulaires estimés par le filtre EKF : Accéléromètres, Gyromètres et Magnétomètres
On constate que l’on retrouve bien les différents mouvements qui ont été appliqués à la
centrale inertielle. En premier, on a les trois mouvements sur le roll (angle !), ensuite les
trois sur le pitch (angle !) puis ceux sur le yaw (angle !) et enfin un mouvement constant
sur le pitch de plusieurs secondes, pendant lesquelles trois mouvements sur le yaw ont été
appliqués. Les mesures des vitesses angulaires permettent de vérifier ces mouvements,
avec chacune trois périodes de rotation.
Figure 5 - Angles et vitesses angulaires estimées par le filtre EKF : Accéléromètres et Gyromètres
Les observations faites à partir des résultats de la Fig.5 sont les mêmes que précédemment.
Les différents mouvements appliqués à la centrale inertielle sont parfaitement
reconnaissables. Toutefois, on constate que les mesures concernant le yaw sont à présent
erronées. Elles sont en effet décalées. Si l’on enlève les mesures magnétiques, on ne perd
pas d’information sur le cap car ce dernier est recalé grâce à la gravité, qui elle ne change
jamais. L’axe Z dérive cependant car elle n’est pas correctement recalée, ce qui est le rôle
des magnétomètres.
On constate également que les mesures des vitesses angulaires ne sont pas affectées par
l’absence des magnétomètres. Etant donné que la seule conséquence est un écart, cela n’a
effectivement pas d’impact sur la dérivée des angles.
Gyromètres. Pour cette dernière expérience, seuls les gyromètres vont être utilisés. Le
résultat des estimations angulaires et de leurs dérivées dans ce cas est présenté en Fig.6.
Figure 6 - Angles et vitesses angulaires estimées par le filtre EKF : Uniquement Gyromètres
Dans ce dernier cas (Fig.6), on observe une dérive totale de la plupart des mesures. Les
premiers mouvements sont relativement bien estimés, bien qu’il y ait d’importants écarts à
l’origine. En revanche, à partir du troisième mouvement, la dérive devient très importante et
toutes les estimations sont faussées. Cela se retrouve au niveau des dérivées avec des
vitesses angulaires estimées erronées.
Dans ce dernier cas, l’utilisation du filtre de Kalman n’est plus justifiée car il s’agit
simplement d’un problème de calibration des gyromètres. Si ces derniers sont correctement
calibrés, la dérive sera légèrement contenue au départ mais reste inévitable. Tous les angles
vont lentement dériver car ils ne seront plus recalés par des mesures annexes telles que
celles des accéléromètres ou des magnétomètres.
Modification des bruits d’état et de mesure. Après avoir constaté l’influence des
différents capteurs sur les estimations, les écart-types associés aux différents bruits ont été
modifiés afin de voir leur influence sur l’efficacité du filtre de Kalman. Il en ressort que
l’augmentation de l’un ou l’autre de ces deux bruits peut avoir des conséquences sur les
estimations du filtre. Ainsi, une augmentation du bruit d’état W au niveau des angles entraine
une importante oscillation de l’estimateur (Fig.7a). L’impact sur les vitesses angulaires est
plus modéré.
En ce qui concerne le bruit de mesure, si son impact sur l’accéléromètre n’est pas très
visible, il l’est en revanche pour le gyromètre et le magnétomètre. Ainsi, une augmentation
du bruit de mesure des gyromètres peut perturber les estimations (Fig.7b). A noter
également qu’un trop fort bruit sur les magnétomètres rend les mesures inutilisables et les
résultats sont alors les mêmes qu’en l’absence de magnétomètres (cf. précédemment).
Figure 7 - Angles et vitesses angulaires estimées par le filtre EKF : (a) bruits d'état et (b) de mesures accentués
IV. Conclusion
L’objectif de ce TP était de se confronter à des problématiques d’estimation de données
issues d’une centrale inertielle « low-cost » par filtrage de Kalman étendu. A l’issue de ces
manipulations, il ressort que le biais des gyromètres entraine une lente mais importante
dérive des angles estimés. L’utilisation de ce seul capteur s’avère donc insuffisante au sein
d’une centrale inertielle supposée estimer avec précision une trajectoire. Il nous a également
était possible de constater l’apport des deux autres catégories de capteurs : les
accéléromètres et les magnétomètres. Ces derniers permettent en effet de recaler en
permanence les mesures issues des gyromètres et ainsi de grandement améliorer la
précision de la centrale inertielle. L’importance du bon calibrage des différents capteurs ainsi
que des bruit d’état et de mesure ont également été observés. Il apparaît ainsi que le bon
fonctionnement d’une centrale inertielle repose sur un calibrage précis des différents
capteurs inertiels et également sur une minimisation des bruits de mesures. Dans la mesure
où ces bruits sont inévitables, et selon l’utilisation souhaitée du système inertiel, l’utilisateur
peut-être amené à prendre en compte davantage une catégorie de capteur (gyromètres) par
rapport aux autres.
Ainsi équipée, une centrale inertielle est donc capable, de part l’estimation des données à
l’aide d’un filtre de Kalman étendu, d’estimer avec plus ou moins de précision la trajectoire
suivie par un objet en mouvement. Toutefois, malgré un recalage constant des différents
capteurs entre eux, une légère dérive de l’ensemble du système reste inévitable dans le
cadre d’utilisation longue durée. C’est pourquoi, lorsque cela est nécessaire et/ou possible,
les systèmes de navigation inertiels (INS) sont couplés à des systèmes GPS (Global
Positioning System). L’ajout des informations provenant de systèmes de positionnement par
satellites permet de régulièrement recalé l’ensemble des capteurs de la centrale inertielle en
cas de dérive trop importante.
V. Références
[1] Welch G, Bishop G, « An introduction to the Kalman Filter », 2006.