Estimation d`état pour les drones aériens

publicité
Estimation d’état pour les drones aériens
Philippe Martin1
1 Centre
Erwan Salaün2
Automatique et Systèmes
MINES ParisTech
2 Decision and Control Laboratory
School of Aerospace Engineering
Georgia Institute of Technology
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
L’estimation d’état, un problème nouveau ?
Estimer l’état (orientation, vitesse,...) d’un engin volant à partir
de mesures fournies par plusieurs capteurs
Motivations pratiques :
commande en boucle fermée d’un mini-drone aérien
(taille ≤ 70cm, poids ≤ 1kg)
mise à jour ≈ 100Hz, temps de latence ≤ qques ms
puissance de calcul limitée (micro-contrôleur sans FPU)
poids limité (système d’avionique complet < 100g)
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Drone aérien ?
Drone aérien (voilure fixe ou tournante) ≈ “corps rigide"
··· = ···
(relation cinématique translation)
V̇ = A + q ∗
1
q∗ω
2
··· = ···
q̇ =
f
∗ q −1
m
(équation des forces)
(relation cinématique rotation)
(équation des moments)
q orientation du corps (quaternion)
ω vitesse angulaire (dans repère avion)
V vitesse linéaire du centre de masse (dans repère Terre)
A = (0, 0, g)T gravité projetée (dans repère Terre)
f forces aérodynamiques (dans repère avion)
Terre plate, sans rotation, repère galiléen ; gravité constante
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Capteurs inertiels
Mesure fournie par gyroscope triaxial idéal au point P :
ω, vitesse angulaire dans repère avion
Mesure fournie par accéléromètre triaxial idéal au point P :
a = q −1 ∗ (A − V̇P ) ∗ q, accélération spécifique dans rep. avion
En particulier a =
f
m
si P centre de masse
Modèle “générique”
1
q∗ω
2
V̇ = A + q ∗ a ∗ q −1
q̇ =
(relation cinématique rotation)
(définition accélération spécifique)
Deux catégories de capteurs inertiels :
les capteurs de classe inertielle, et les autres (dont MEMS)...
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Autres capteurs
Mesure fournie par magnétomètre triaxial idéal au point P :
q −1 ∗ B ∗ q, champ magnétique terrestre dans repère avion
B varie avec latitude ; mesure facilement perturbée !
GPS :
mesures brutes : “pseudo-distance” et décalage Doppler
“solutions de navigation” : position (bof) et vitesse (super)
il faut “voir” au moins 4 satellites
capteur de pression, télémètre(s), systèmes de vision
(anémomètre(s), radar Doppler : pas pour mini-drones)
inclinomètre : ça n’existe pas !
Conclusion : les capteurs inertiels sont importants
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Estimateur, observateur, etc.
Modèle du système étudié
ẋ = f (x, u)
y (t), u(t) connus à tout instant t
y = h(x, u)
état x(t) à estimer
Observateur : “filtre estimateur récursif sans déphasage”
ż = F(z, u, y )
x̂ = G(z)
G 0 (z) · F z, u, h G(z), u = f G(z), u
pour tous z, u
x̂(t) → x(t) quand t → +∞ (estimation asymptotique)
Réécriture (localement) équivalente
x̂˙ = f (x̂, u) + g(x̂, u, y , P)
avec g x̂, u, h(x̂, u), P = 0
Ṗ = G(x̂, u, y , P)
Philippe Martin et Erwan Salaün
mise à jour des paramètres
Estimation d’état pour les drones aériens
Convergence(s) : x̂(t) → x(t) ?
(cg) convergence globale : toute condition initiale (x0 , u0 , x̂0 , P0 )
(cltt) convergence locale autour de toute trajectoire : toute
CI
(x0 , u0 , x̂0 ≈ x0 , P0 ) (et P0 tq G x̂0 , u0 , h(x0 , u0 ), P0 ≈ 0)
(cltpe) convergence locale autour de tout point d’équilibre : toute
CI (x0 , u0 ; x̂0 , u0 , P0 ) ≈ (x̄, ū, x̄, P̄) avec (x̄, ū, P̄)
quelconque tq f (x̄, ū) = 0 et G x̄, ū, h(x̄, ū), P̄ = 0
(cl1pe) convergence locale autour d’un point d’équilibre : toute CI
(x0 , u0 ; x̂0 , u0 , P0 ) ≈ (x̄, ū, x̄, P̄) avec (x̄, ū, P̄) donné tq
f (x̄, ū) = 0 et G x̄, ū, h(x̄, ū), P̄ = 0
Observateur : un problème largement ouvert...
(cltt) : serait déjà très bien en pratique !
(cltpe) : ce qu’on sait faire en toute généralité
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Conditions à vérifier par le système
Observabilté : relation entre l’état et les signaux connus
Système observable (localement génériquement) ssi
x = M(y , ẏ , ÿ , · · · , u, u̇, ü, · · · )
formule inutilisable en pratique
observateur : “implémentation asymptotique sans dériver“
Si système pas observable, on peut (localement) le réécrire :
ẋ1 = f1 (x1 , x2 , u)
partie inobservable
ẋ2 = f1 (x2 , u)
partie observable
y = h(x2 , u)
Seule façon d’estimer x1 : recopie du système... si stabilité
x̂˙ = f (x̂ , x̂ , u)
(on suppose x̂ connu)
1
1
1
2
Philippe Martin et Erwan Salaün
2
Estimation d’état pour les drones aériens
Intermède : le cas linéaire stationnaire
ẋ = Ax + Bu
y , u signaux connus
y = Cx + Du
Observateur à gains constants
x̂˙ = Ax̂ + Bu + L y − (C x̂ + Du)
L matrice à choisir
convergence arbitrairement rapide ssi (A, C) observable
réglage judicieux : compromis confiance modèle/mesure
Filtre de Kalman : compromis “optimal”
x̂˙ = Ax̂ + Bu + PC T (NN T )−1 y − (C x̂ + Du)
Ṗ = AP + PAT + MM T − PC T (NN T )−1 CP
M, N matrices de “réglage” (stochastique ou déterministe)
convergence si (A, C) et (AT , M T ) observables
pas très intéressant en linéaire...
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Facile en linéaire, dur en non-linéaire : pourquoi ?
Equation de l’erreur e := x̂ − x en linéaire :
ė = (A − LC)e
Ṗ = G(P)
Ne dépend pas de la trajectoire suivie !
Equation de l’erreur e := x̂ − x en non-linéaire :
ė = η(x̂, u, P)
Ṗ = G x̂, u, h(x̂ − e, u)
x̂˙ = f (x̂, u) + g x̂, u, h(x̂ − e, u), P
dépend de la trajectoire suivie !
quand on linéarise, matrices instationnaires
seulement conv. locale autour de tout point d’équilibre
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Observateurs dans le cas non-linéaire (1/2)
Observateur à gains "schedulés”
x̂˙ = f (x̂, u) + L(x̂, u, y ) · y − h(x̂, u)
En posant A := ∂1 f (x̂,u) et C := ∂1 h(x̂, u), l’équation
d’erreur
linéarisée s’écrit ė ≈ A − L x̂, u, h(x̂, u) C e, donc :
si (x̂, u) toujours proche de point d’éq, “facile” de choisir L
seulement conv. locale autour de tout point d’équilibre
Filtre de Kalman étendu (Extended Kalman Filter, EKF)
x̂˙ = f (x̂, u) + PC T (NN T )−1 · y − h(x̂, u)
Ṗ = AP + PAT + MM T − PC T (NN T )−1 CP
OK si (x̂, u) toujours proche de point d’éq (cltpe)
choix M, N ? ; implémentation numérique gourmande
EKF 6= magie
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Observateurs dans le cas non-linéaire (2/2)
Il y a plein de méthodes particulières...
Observateurs invariants : utiliser les symétries
x̂˙ = f (x̂, u) + W (x̂)L I(x̂, u), E(x̂, u, y ) E(x̂, u, y )
L(I, E) matrice à choisir
E(x̂, u, y ) erreur de sortie invariante
W (x̂) = w1 (x̂), .., wn (x̂) base invariante ; I(x̂, u) invariant
construction “explicite” (méthode du repère mobile)
Equation d’erreur “presque” autonome si “assez” de symétries
η̇ = Υ(η, I)
η erreur d’état invariante
mieux que cltpe
réglage “naturel”
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Drones aériens : estimateur générique ou spécifique ?
Générique : pas besoin de modèle des forces
1
q∗ω
2
V̇ = A + q ∗ a ∗ q −1
q̇ =
ω, a “entrées” mesurées
S’applique à tout drone, mais pour estimation “satisfaisante” il
faut mesurer la vitesse...
Spécifique : il faut un modèle des forces
q̇ =
1
q∗ω
2
ω “entrée” mesurée
f (V , q)
f (V , q)
∗ q −1
a=
“sortie” mesurée
m
m
bonne connaissance de l’aérodynamique de l’engin
V̇ = A + q ∗
spécifique du drone considéré...
accéléromètre au centre de masse
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Estimateur générique avec juste capteurs inertiels ?
Non avec modèle terre plate...
Système complètement inobservable et instable :
l’erreur d’orientation est constante
l’erreur de vitesse horizontale diverge linéairement
l’erreur de vitesse verticale est constante
Encore pire avec biais de capteurs !
Oui avec modèle terre “ronde” et “excellents” capteurs = Nav In
Système complètement inobservable, mais oscillant :
l’erreur d’orientation oscille (autour de 0) avec Ts ≈ 85min
l’erreur de vitesse horizontale oscille avec Ts ≈ 85min
l’erreur de vitesse verticale diverge avec Ts /2π ≈ 14min
Reste vrai même avec biais de capteurs
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
La navigation inertielle du pauvre : AHRS
Avec capteurs MEMS, il faut renoncer à estimer la vitesse...
Approximation “classique” V̇ ≈ 0
a = q −1 ∗ (V̇ − A) ∗ q ≈ −q −1 ∗ A ∗ q
l’accéléromètre “mesure” les angles de roulis et tangage
pertinence de l’approximation ?
magnétomètre indispensable pour le cap
Modèle :
1
q̇ = q ∗ ω
2
yA
q −1 ∗ A ∗ q
=
.
yB
q −1 ∗ B ∗ q
ω “entrée” mesurée
yA , yB “sorties” mesurées
Observateur invariant marche très bien “en vrai”
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
AHRS “aidé” par mesure de vitesse
3 gyros mesurent ωm := ω + ωb (repère avion)
3 accéléros mesurent am := as a (repère avion)
3 magnétos mesurent le champ magnétique (repère avion)
un module GPS mesure le vecteur vitesse (repère Terre)
Modèle avec capteurs imparfaits
1
q̇ = q ∗ (ωm − ωb )
2
1
V̇ = A + q ∗ am ∗ q −1
as
ω̇b = 0
ȧs = 0
yV
yB
=
V
−1
q ∗B∗q
Philippe Martin et Erwan Salaün
Groupes de symétries “naturel”
  

q̃
q ∗ q0
 Ṽ  

  =  −1 V + V0

ω̃b  q ∗ ωb ∗ q0 + ω0 
0
as a0
−1
ω̃m
q0 ∗ ωm ∗ q0 + ω0
=
ãm
a0 q0−1 ∗ am ∗ q0
yV + V 0
ỹV
=
ỹB
q0−1 ∗ yB ∗ q0
ãs
Estimation d’état pour les drones aériens
Observateur invariant :
1
q̂˙ = q̂ ∗ (ωm − ω̂b ) + (LV EV + LB EB ) ∗ q̂
2
1
˙
V̂ = q̂ ∗ am ∗ q̂ −1 + A + (MV EV + MB EB )
âs
˙ω̂b = q̂ −1 ∗ (NV EV + NB EB ) ∗ q̂
â˙ s = âs (O E + O E )
V
V
B
B
EV
V̂ − yV
=
EB
B − q̂ ∗ yB ∗ q̂ −1
q̂ ∗ (ωm − ω̂b ) ∗ q̂ −1
Iω
=
1
q̂ ∗ am ∗ q̂ −1
Ia
âs
LV , LB , MV , MB , NV , NB , OV , OB matrices de gains à choisir,
dépendant possiblement de EV , EB , Ia , Iw
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Erreur d’état invariante

  
q̂ ∗ q −1
η

ν  
V̂ − V

 =
.

ω  q ∗ (ω̂b − ωb ) ∗ q −1 

âs
α
a
s
Système d’erreur linéarisé autour de (η, ν, ω, α) = (1, 0, 0, 1)
1
δ η̇ = − δω + (LV δEV + LB δEB )
2
δ ν̇ = −2Ia × δη − δαIa + (MV δEV + MB δEB )
δ ω̇ = Iω × δω + (NV δEV + NB δEB )
δ α̇ = (OV δEV + OB δEB )
δEV = δν
δEB = 2B × δη
Convergence locale autour de toute trajectoire tq Ia constant
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Real time implementation on a SMALL processor
8-bit Atmel ATmega128
4ko RAM, 16MHz clock, no FPU
cheap (5$)
update rate 100Hz
crude numerical scheme
C language with emulated
floating point library
the processor handles many
sensor-generated interrupts
(don’t think about EKF)
yet it works fine !
Philippe Martin et Erwan Salaün
Estimation d’état pour les drones aériens
Estimateur spécifique pour quadrotor
Modèle des forces aérodynamiques :
 λ

− m (ω1 + ω2 + ω3 + ω4 )u
f
λ
≈ − m
(ω1 + ω2 + ω3 + ω4 )v 
m
α
− m ω12 + ω22 + ω32 + ω42
u, v composantes de la vitesse dans repère avion
ω1 à ω4 vitesses de rotation des hélices ;
λ, α constantes liées à la géométrie des hélices
un accéléromètre au centre de masse mesure la vitesse !
on peut donc construire un observateur (horizontal)

Modèle “standard” :
f
≈
m
α
−m
Philippe Martin et Erwan Salaün

0

0
2
2
2
2
ω1 + ω2 + ω3 + ω4
Estimation d’état pour les drones aériens
Téléchargement