Localisa(on et naviga(on de robots
TD2: Localisa-on par filtre de Kalman étendu
Fabio MORBIDI
Localisa(on d’un robot mobile basée sur carte
Pose ini(ale connue
M
x y
Prédic(on (odométrie)
Correc(on (mesure)
x0
Représenta(on de la carte
1. Décomposi(on exacte en cellules
2. Décomposi(on approxima,ve en cellules
• Cellules de taille fixe
• Cellules de taille variable
3. Cartes topologiques
4. Représenta(on con(nue basée sur droites
Représenta(on de la carte
1. Décomposi(on exacte en cellules [Latombe, 1991]
Représenta(on de la carte
2. Décomposi(on approxima(ve en cellules
• Cellules de taille fixe (« occupancy grid »)
• Simple et très u(lisée
• Les passages étroits disparaissent (pas une représenta(on complète)
• Grande mémoire nécessaire si la taille des cellules est pe(te
Représenta(on de la carte
• Cellules de taille variable
• Décomposi(on adapta(ve
Représenta(on de la carte
3. Cartes topologiques
• Elles représentent l'environnement comme un graphe avec nœuds et arêtes:
• Les nœuds correspondent à l’espace géométrique
• Les arêtes correspondent aux connexions physiques
entre les nœuds
• Les cartes topologiques sont
dépourvues d’échelle et de distance, mais les rela,ons topologiques (ex. gauche, droite) sont maintenues
Nœud (loca(on)
Arête (connexion)
Représenta(on de la carte
• Exemple de carte topologique
• Carte du métro de Paris
Représenta(on de la carte
4. Représenta(on con(nue basée sur droites
a) Représenta(on avec un ensemble de droites (finies ou infinies)
b) Extrac(on de droites à par(r de l’informa(on 2D de caméras, sonars ou lasers a) Transformée de Hough
b) RANSAC (RAndom Sample Consensus)
c) Split-and-Merge, Line Regression (seulement pour mesures laser)
Représenta(on de la carte: sommaire
1) Carte réelle avec murs, mobilier, portes, etc.
4) Représenta(on con(nue basée sur droites:
100 droites avec 2 paramètres
2) Décomposi(on approxima(ve: environ 3000 cellules de taille fixe 50 × 50 cm. Chaque cellule est soit remplie (par(e d'un obstacle) ou vide (espace libre)
3) Carte topologique: 18 nœuds
Posi(on du robot
Nœud i
(b) (c)
(a)
(d)
(1) (2) (3)
(4)
Problème de localisa(on probabiliste
Approche probabiliste au problème de localisa(on:
Il permet de calculer la densité de probabilité (pdf) de la pose d’un robot dans chaque étape de prédic(on et de correc(on
Ingrédients:
1. Densité de probabilité ini(ale: croyance(x0)
2. Modèle d'erreur sta(s(que des capteurs propriocep,fs (ex. encodeurs des roues)
3. Modèle d'erreur sta(s(que des capteurs extérocep,fs (ex. laser, sonar, caméra)
4. Carte de l’environnement
M
Fusion des capteurs propriocep(fs et extérocep(fs
Landmark = marqueur passif
Odometry
Localisa(on d’un robot par EKF
• Robot de type unicycle à conduite différen-elle
• Capteurs: encodeurs sur les roues (propriocep(fs), télém. laser (extérocep(f)
• Repère du télémètre laser {S} repère du robot {R}
• Primi-ves de M : droites (dans le repère monde {W})
Hypothèses
⌘
{R}
{S}
m
jlaser
Localisa(on d’un robot par EKF
① Prédic-on
② Correc-on
a) Observa(on des primi(ves par mesure capteurs b) Prédic(on de mesure des primi(ves
c) Appariement des mesures
d) Es(ma(on
Localisa(on d’un robot par EKF
① Prédic-on
② Correc-on
a) Observa(on des primi(ves par mesure capteurs b) Prédic(on de mesure des primi(ves
c) Appariement des mesures
d) Es(ma(on
① Prédic-on
Prédic-on de la nouvelle pose à par-r de:
• L’ancienne pose:
• Le déplacement des roues (gauche, droite):
On peut u(liser le modèle pour l’exac(tude odométrique développé dans le TD1:
P b
t= F
xP
t 1F
Tx+ F
uQ
tF
Tucovariance de l’état précédent du robot
covariance du bruit du modèle de mouvement:
u
t= [ s
g, s
d]
Tx
t 1= [x
t 1, y
t 1, ✓
t 1]
Tb
xt = f(xt 1, ut) = 2 64
xt 1 yt 1
✓t 1 3 75 +
2 66 64
sd+ sg
2 cos⇣
✓t 1 + sd2L sg ⌘
sd+ sg
2 sin⇣
✓t 1 + sd2L sg ⌘
sd+ sg
L
3 77 75
P
t 1x
t 1Q
toù Qt = diag(kd| sd|, kg| sg|)
Modèle non linéaire !
{W}
Prédic(on de la pose
① Prédic-on
Temps t
Temps t - 1
x
t 1b
x
tRappel le TD1 - Exercices 1-2
Fonc(ons « MAJEtatOdometrie » et «propageErreurs» pour la mise à
jour de la pose du robot et le calcul de la matrice de covariance ⌃
p0① Prédic-on
Exercice 1
Localisa(on d’un robot par EKF
① Prédic-on
② Correc-on
a) Observa(on des primi(ves par mesure capteur b) Prédic(on de mesure des primi(ves
c) Appariement des mesures
d) Es(ma(on
② Correc-on
a) Observa-on des primi-ves par mesure capteur
• Primi(ves de type droite
• Une droite est paramétrée en coordonnées polaires:
• n observa(ons :
• Données dans le repère local {R} du robot
R
, i 2 { 1, . . . , n }
z
i=
"
↵
ir
i#
z = ⇥
(z
1)
T, . . . , (z
n)
T⇤
T2 R
2ni i
{R}
droite i
② Correc-on
a) Observa-on des primi-ves par mesure capteur
• n droites observées, 2 n paramètres
• L’incer(tude sur les droites est representée par la matrice de covariance:
• Ce@e matrice de covariance peut être calculée à par(r des incer(tudes des mesures contribuant à chaque droite
• Dans notre implémenta(on Matlab, on va choisir:
R
it=
↵↵ ↵rr↵ rr
i
t
, i 2 { 1, . . . , n }
R
it=
"
2.5 ⇡/180 0
0 10
#
, i 2 { 1, . . . , n }
② Correc-on
a) Observa-on des primi-ves par mesure capteur
Données brutes généréees par le
télémétre laser
Les droites sont extraites (ex. avec RANSAC)
Représenta(on des paramètres des droites et des incer(tudes associées
dans l’espace du modèle
↵i Droite i
Droite i
Espace du modèle
r
iLocalisa(on d’un robot par EKF
① Prédic-on
② Correc-on
a) Observa(on des primi(ves par mesure capteur b) Prédic(on de mesure des primi(ves
c) Appariement des mesures
d) Es(ma(on
② Correc-on
b) Prédic-on de mesure des primi-ves
• U-lise:
• La posi(on prédite du robot (calculée dans l’étape 1)
• Le modèle de la primi(ve (une droite)
• Donne:
• L’observa(on prédite pour chaque primi(ve
dans le repère local {R} du robot b x
tW
b z
jt= h
j( x b
t, m
j) m
jm
j=
"
↵
jr
j#
② Correc-on
b) Prédic-on de mesure des primi-ves
b z
jt=
W"
b
↵
jtb r
tj#
= h
j( x b
t, m
j) =
"
↵
jt✓ b
tr
tjx b
tcos( ↵
jt) y b
tsin( ↵
jt)
#
W W W
r
jb
R
droite j
R
r b
tjR↵bjt
W
↵
tjW
r
tj{W}
② Correc-on
b) Prédic-on de mesure des primi-ves
h
j( x b
t, m
j)
pour pouvoir implementer le filtre de Kalman b
x
tPar la suite on va u(liser la matrice jacobienne de par rapport à :
H
j= @ h
j( x b
t, m
j)
@ x b
t=
"
0 0 1
cos(
W↵
jt) sin(
W↵
jt) 0
#
② Correc-on
b) Prédic-on de mesure des primi-ves
• Les prédic,ons de mesure peuvent être représentées dans l'espace du modèle d’un façon similaire aux observa(ons
b
↵j
b r
j• Le résultat de la prédic(on de mesure sont droites représentées dans le repère du robot {R}
• Elles sont incertaines, parce que la prédic(on de pose du robot
est incertaine x b
tDroite j
Espace du modèle
② Correc-on
b) Prédic-on de mesure des primi-ves
W
b z
jt=
"
b
↵
jtb r
tj#
= h
j( x b
t, m
j) =
"
↵
jt✓ b
tr
tjx b
tcos( ↵
jt) y b
tsin( ↵
jt)
#
W W W
R
Exercice 2.2 (voir “initEnviro.m”, “genereTrajs.m” pour la ges(on des droites)
Localisa(on d’un robot par EKF
① Prédic-on
② Correc-on
a) Observa(on des primi(ves par mesure capteur b) Prédic(on de mesure des primi(ves
c) Appariement des mesures
d) Es(ma(on
② Correc-on
c) Appariement des mesures
• Trouver la meilleur correspondance entre:
• Les mesures courantes (« index i »)
• Les prédic(ons de mesure (« index j »)
• Pour chaque appariement on calcule:
• L’innova(on
• La matrice de covariance de l’innova(on
R R
z
i=
"
↵
ir
i# ?
b z
j=
"
b
↵
jb r
j#
(i, j )
② Correc-on
c) Appariement des mesures
• Pour chaque appariement :
• Calculer l’innova(on:
• Calculer la covariance de l’innova(on:
• Pour valider l’appariement, on u(lise la distance de Mahalanobis avec un seuil :
⌃
ijINt
= H
jP b
t(H
j)
T+ R
it(v
tij)
T(⌃
ijINt)
1v
ijt g
2v
tij= z
ith
j( x b
t, m
j) =
"
↵
itr
ti# "
↵
jt✓ b
tr
tjx b
tcos( ↵
jt) y b
tsin( ↵
jt)
#
R W
W W W
g > 0
(i, j )
② Correc-on
c) Appariement des mesures
Espace du modèle
Appariement i, j
Mesure (épais), prédic(on (fine)
Pas d’appariement.
Le mur n'a pas été observé !
On cherche les meilleurs appariements:
b r
jr
iAberrante
Mur
② Correc-on
c) Appariement des mesures
• Trouver la correspondance entre les mesures et les observa(ons prédites
• Calculer l’innova(on composite
• Calculer la covariance de l’innova(on composite
• Empiler les en
v
t⌃
INtH
jH
t[v
t, H
t, ⌃
INt] = appariement( b z
t, z
t, P b
t, R
t, g)
b z
tz
tExercice 2.3
② Correc-on
c) Appariement des mesures Exercice 2.3
Localisa(on d’un robot par EKF
① Prédic-on
② Correc-on
a) Observa(on des primi(ves par mesure capteur b) Prédic(on de mesure des primi(ves
c) Appariement des mesures
d) Es(ma(on
d) Es-ma-on En se basant sur:
• La pose prédite et la covariance
• Les mesures appariées
(I) Mise à jour de la pose:
• Gain du filtre de Kalman:
(II) Mise à jour de la covariance:
b x
tx
t= x b
t+ K
tv
tK
t= P b
tH
Tt(⌃
INt)
1P
t= P b
tK
t⌃
INtK
Tt[x
t, y
t, ✓
t, P
t] = estimation( x b
t, y b
t, ✓ b
t, P b
t, v
t, H
t, ⌃
INt)
② Correc-on
Exercice 2.4
P b
tExercice 2.4
② Correc-on
Exercice 2.1
② Correc-on
En fusionnant la prédic,on de la pose du robot (fine) avec l'innova,on obtenue par les mesures (épais), nous obtenons l'es(ma(on finale de la pose du robot (très épais)
Es(ma(on finale
Prédic(on (odométrie)
Innova(on par mesures
② Correc-on
x
t , Ptb
x
t, P b
tSommaire des équa(ons de l’EKF
Prédic-on
Avantage
• Efficacité au niveau de calcul (mécanisme récursif) Inconvénient
• Si l'incer(tude du robot devient trop importante (ex. collision avec un objet)