UPJV, Département EEA Master 2 EEAII
Parcours ViRob
Fabio MORBIDI
Laboratoire MIS
Équipe Perception Robotique E-mail: [email protected] Mercredi 10h00-12h30, Jeudi 14h00-17h00
Salle TP101
Plan du cours
Chapitre 1: Perception pour la robotique
Chapitre 2: Modélisation de l’incertitude
1. Introduction
3. Typologies de capteur 2. Classification des capteurs
1. Introduction
3. Incertitude d’un capteur 2. Représentation de l’erreur
4. Propagation d’incertitude
Chapitre 3: Traitement des mesures
1. Réseau multi-capteurs 2. Fusion des mesures
Partie I : Perception Avancée
Ch. 3: Traitement des mesures
Réseau multi-capteurs
Fusion des mesures Partie 2 Partie 1
Fusion de capteurs en robotique mobile (localisation): Filtre de Kalman
« Différents » filtres de Kalman:
1. Fusion de mesures
2. Fusion de mesures dans le temps
3. Fusion de mesures de capteurs en mouvement
- Combinaison des évidences (mesures) de façon optimale
- Moyenne récursive
• Filtre de Kalman linéaire (système dyn. linéaire)
• Filtre de Kalman étendu ou EKF (système dyn. non linéaire)
Fusion de capteurs en robotique mobile (localisation): Filtre de Kalman
Notation
: état du système (scalaire, pour plus de simplicité) : mesure (approximation de )
: variance de la mesure (notre “confiance” en elle) : estimation optimale de
1. Fusion de mesures
x x
x
x
Hypothèses:
Deux mesures de capteurs (non corrélées): et
Bruits gaussiens à moyenne zéro:
Estimation de l’état optimum:
où est le gain de Kalman
z1 z2
x = z1 + K(z2 − z1)
σ2 = (1 − K)σ12 K = σ12
σ12 + σ22
zi ∼ N(0, σi2), i ∈ {1,2}
zi
σi2
Fusion de capteurs en robotique mobile (localisation): Filtre de Kalman
est le gain de Kalman
z1 z2
z(t1), z(t2) t1 < t2
Estimation de l’état optimum à l’instant : t2
x(t2) = z(t1) + K(z(t2) − z(t1))
σ2 = (1 − K)σz2(t1)
où
K = σz2(t1)
σz2(t1) + σz2(t2)
• Introduisons maintenant le temps
• Les mesures et sont prises de façon
séquentielle, à savoir nous avons avec 2. Fusion de mesures dans le temps
t
Fusion de capteurs en robotique mobile (localisation): Filtre de Kalman
• Que se passe-t-il si nous prenons une autre mesure à l’instant ?
Estimation de l’état optimum à l’instant générique , :
où
z(t3) t3 > t2
tk
K(tk−1) = σ2(tk−1)
σ2(tk−1) + σz2(tk)
x(tk) = x(tk−1) + K(tk−1)(z(tk) − x(tk−1))
σ2(tk) = (1 − K(tk−1))σ2(tk−1) “Moyenne
recursive”
2. Fusion de mesures dans le temps
est le gain de Kalman (variable dans le temps)
k ∈ N
Fusion de capteurs en robotique mobile (localisation): Filtre de Kalman
Entrée du filtre: la commande et les mesures
Sortie du filtre: l’estimation de l’état du système et la matrice de covariance de l’erreur d’estimation
A B Q R
Matrices:
3. Systèmes dynamiques
u z x
x P
u
z
Px
Etant donné un système dynamique à temps discret d’état
H
Filtre de Kalman linéaire
• Soit le système dynamique à temps discret, :
xk = Ak−1xk−1 + Bk−1uk−1 + wk−1
• Le bruit de modèle et le bruit de mesure sont supposés à moyenne zéro, blancs (sans mémoire) et gaussiens avec matrices de covariance et , respectivement. Les bruits de modèle et de mesure sont supposés non corrélés. En résumé, nous avons:
wk−1
E(wk) = 0
E(wkwTk ) = Qk
E(wkwjT) = 0, j = k
Qk Rk
k ∈ {1, 2, . . .}
Entrée de commande (connue)
zk = Hk xk + rk
rk
E(rk) = 0
E(rk rTj ) = 0, j = k E(rk rTk ) = Rk
E(rk wjT) = 0, ∀ j, k
Equation d’état Equation de mesure
• Le filtre de Kalman linéaire à temps discret est un estimateur récursif
Pour estimer l'état courant , on a besoin uniquement de connaître l'estimé de l'état précédent et les mesures courantes: l'historique des mesures et des estimés n'est pas nécessaire
• L' « état du filtre » se compose de deux variables:
: estimé de l'état du système à l'instant , en utilisant l’information jusqu’à l’instant
xk|k
Pk|k = E[(xk − xk|k)(xk − xk|k)T] : matrice de covariance de l'erreur d’estimation
de l’état à l'instant , en utilisant l’information jusqu’à l’instant
Erreur d'estimation de l’état du système
xk|k xk
1.
2.
xk
Filtre de Kalman linéaire
xk
k k
k k
Initialisation du filtre:
P0|0 = E[(x0 − x0|0)(x0 − x0|0)T ]
Phase de prédiction:
xk|k−1 = Ak−1xk−1|k−1 + Bk−1uk−1
Pk|k−1 = Ak−1Pk−1|k−1ATk−1 + Qk−1
Pour : k ∈ {1, 2, . . .}
x0|0 = E[x0] où est l’état initial du système x0
Filtre de Kalman linéaire
Phase de correction:
est la matrice d'estimation a posteriori de la covariance de l'erreur
xk|k = xk|k−1 + Kk(zk − Hk xk|k−1)
où
Kk = Pk|k−1 HTk (Hk Pk|k−1HTk + Rk)−1 Pk|k = (P−k|k−1 1 + HTk R−k 1Hk)−1
est le gain de Kalman Innovation
est la matrice d'estimation a priori de la covariance de l'erreur
Pk|k Pk|k−1
Filtre de Kalman linéaire
Remarque:
• Un chariot à roues encodeuses avance pas-à-pas
• Un laser mesure la distance du chariot par rapport à un mur
Exemple I: une variable d’état
z
σpas = 0.01 m σlaser = 0.1 m
x
mur
laser
pas
Laser
TD3
Exemple:
xk|k−1
xk−1|k−1 : estimé de la position du robot avant le déplacement
: estimé de la position du robot après le déplacement et avant la mesure
: estimé de la position du robot après la mesure
xk|k−1
zk
xk|k zk
zk
uk−1
xk−1|k−1 xk|k Exemple I: une variable d’état
uk−1
Correction Prédiction
Dans cet exemple, nous avons que (rappel la forme générale d’un système dynamique à temps discret):
xk = xk, uk−1 = upask−1, Ak−1 = 1, Bk−1 = 1, Hk = 1
Phase de prédiction:
xk|k−1 = xk−1|k−1 + upask−1 Pk|k−1 = Pk−1|k−1 + σpas2
Phase de correction:
xk|k = xk|k−1 + Kk(zk − xk|k−1) Pk|k = (1 − Kk)Pk|k−1
Kk = Pk|k−1(Pk|k−1 + R)−1 = Pk|k−1
Pk|k−1 + σlaser2 Exemple I: une variable d’état
où
Exemple II: deux variables d’état
Un gyroscope et un compas magnétique sont placés sur une plate-forme mobile
• Les mesures de vitesse fournies par le gyroscope sont entachées par un bruit gaussien:
(avec biais)
• Les mesures de position fournies par le compas sont aussi entachées par un bruit gaussien:
(sans biais) La plate-forme tourne librement autour de son axe vertical
N(μgyro, σgyro2 ) = N (0.1, 0.22) deg/s
N (μcomp, σcomp2 ) = N (0, 102) deg
Les deux bruits sont supposés non corrélés
g c
TD3
Objectif: fusionner les deux mesures ensemble
• Le mesures du gyroscope sont précises, mais elles dérivent (cf. l’odométrie dans Exemple I)
- Gyroscope: capteur proprioceptif
- Compas magnétique: capteur extéroceptif
• Le mesures du compas ne dérivent pas, mais elles sont fortement bruitées
donc, on peut conclure que:
Les mesures du gyroscope sont bonnes à court terme tandis que celles du compas sont bonnes à long terme
Exemple II: deux variables d’état
• L’état du système consiste en la position et en la vitesse angulaire de la plate-forme, à savoir:
• Etant un capteur proprioceptif, les mesures du gyroscope équivalent à une commande: . On peut donc définir le système dynamique suivant:
où est la cadence d'échantillonnage et
E[wk] = [0, μgyro]T , Q = E[wkwTk ] = diag(0, 16σgyro2 )
Sur-estime, pour tenir compte du biais
x = [θ, θ˙]T
A B
(*)
Exemple II: deux variables d’état
ΔT
θ˙gyro(k) = uk
xk =
1 ΔT
0 0
xk−1 +
0
1
uk−1 + wk−1
• Les “vraies mesures” sont effectuées uniquement par le compas (capteur extéroceptif)
• En d’autres termes, nous ne voulons pas que le gyroscope intervienne dans la phase de correction du filtre de Kalman, donc on peut définir simplement:
où
E[rk] = μcomp = 0, R = E[rk2] = σcomp2
(**)
Grâce au système dynamique (*) et (**) ainsi trouvé, on peut écrire les équations du filtre de Kalman pour la fusion des mesures du gyroscope et du compas
Exemple II: deux variables d’état
zk = [1 0] xk + rk H
Exemple II: simulation
Résultats de la simulation (20 mesures/s)
Angle [deg]Angle [deg]Angle [deg]
Temps [s]
197.5 198 198.5 199 199.5 200
0 20 40 60 80 100 120 140 160 180 200
0 0.5 1 1.5 2 2.5
0 20 40 60 80 0 10 20 3040
-10 -20 0 50 100
-50 -100
Position angulaire réelle Compas
Intégrale des mesures du gyro
Estim. Kalman
Derive du gyro
Exemple III: Projet ANR CityVIP (2009-2011)
“Déplacement sûr de véhicules individuels adaptés à l’environnement urbain” (source: D. Bétaille, IFSTTAR)
• Le milieu urbain cumule:
– l’intérêt d’un positionnement précis et intègre – mais plusieurs difficultés ...
• pour le positionnement GPS:
– les masquages de satellites – les trajets multiples
• pour le positionnement par traitement de vidéos:
– les problèmes d’ombres et d’éblouissements – les problèmes de réflexions
Mais le milieu urbain est fortement structuré et la connaissance d’une carte est d’un précieux secours Problématique de la géolocalisation en ville
Objectifs du projet CityVIP
• Développer un système de localisation adapté aux véhicules urbains:
– précis (erreur < 1 m à 95%)
– intègre (estimation sûre d’un majorant de l’erreur) – bas coût (utilisation de capteurs bas de gamme)
• Le système de localisation exploite:
– un récepteur GPS bas de gamme (u-blox)
– les codeurs CAN des roues arrière du véhicule – une caméra vidéo N&B standard (Marlin)
– une carte numérique 3D précise
Exemple III: Projet ANR CityVIP (2009-2011)
... et on tire le meilleur parti de toutes ces sources d’information (fusion)
Coopération des modules actualisant la pose
• Intégration de mesures proprioceptives (odométrie)
• Mise en correspondance avec la carte numérique 3D (map matching)
• Utilisation de données satellitaires en couplage lâche ou serré:
⇒ Test préalable de validité
Force du signal Visibilité directe
• Fusion avec la localisation par vision
Exemple III: Projet ANR CityVIP (2009-2011)
Localisation par vision: construction de la base d'amers visuels
Séquence vidéo de référence
Base d'amers visuels géoréférencés (points 3D +
descripteurs associés) Trajectoire de référence
Exemple III: Projet ANR CityVIP (2009-2011)
Localisation par vision: algorithme temps réel
Points d'intérêt sur l'image courante
Base d'amers visuels
Pose du véhicule et incertitude associée
Appariement 3D/2D
Exemple III: Projet ANR CityVIP (2009-2011)
Localisation globale par fusion multi-capteurs
Configuration du véhicule dans le repère local ENU (East-North-Up):
Modèle cinématique 3D du véhicule (non linéaire à temps continu):
⎡
⎢⎢
⎢⎢
⎢⎢
⎢⎢
⎣ x˙ y˙ z˙ ψ˙
θ˙ φ˙
⎤
⎥⎥
⎥⎥
⎥⎥
⎥⎥
⎦
= v
⎛
⎜⎜
⎜⎜
⎜⎜
⎜⎝
⎡
⎢⎢
⎢⎢
⎢⎢
⎢⎣
cos ψ sin ψ
θ 0 0 0
⎤
⎥⎥
⎥⎥
⎥⎥
⎥⎦ +
⎡
⎢⎢
⎢⎢
⎢⎢
⎢⎣ 0 0 0 1
−φ θ
⎤
⎥⎥
⎥⎥
⎥⎥
⎥⎦ w
⎞
⎟⎟
⎟⎟
⎟⎟
⎟⎠
v
où est la vitesse longitudinale et la vitesse angulaire du véhicule (les entrées du système dynamique)
Exemple III: Projet ANR CityVIP (2009-2011)
x = [x, y, z, ψ, θ, φ]T
w x˙ =
.
Configuration du véhicule:
ψ φ θ
Repère inertiel
Repère du véhicule
Exemple III: Projet ANR CityVIP (2009-2011)
v
x = [x, y, z, ψ, θ, φ]T
Roue
Localisation globale par fusion multi-capteurs
Intégration dans le véhicule VERT
Mesure de référence des trajectoires
Codeurs de roues Baie d’acquisition
(RT-Maps, Aroccam)
Exemple III: Projet ANR CityVIP (2009-2011)
Récepteur GPS bas-coût
Exemple III: Projet ANR CityVIP (2009-2011)
Localisation globale par fusion multi-capteurs et carte: résultats
Localisation Lot 2
Segment sélectionné dans le map matching Localisation après fusion
lot 1 (carte) / lot 2 (vision)
Exemple III: Projet ANR CityVIP (2009-2011)
Localisation globale par fusion multi-capteurs et carte