Localisation et navigation de robots UFR des Sciences, Département EEA M2 EEAII, parcours ViRob Chapitre 1 : Localisation F. Morbidi 2014/2015 2 Plan du cours Chapitre 1: Localisation 1.1 Introduction et défis 1.2 Odométrie 1.3 Filtrage et fusion de capteurs 1.4 Autres techniques de localisation Chapitre 2: Navigation 2.1 Stratégies de navigation 2.2 Architectures de contrôle 2.3 Navigation vers un but 2.4 Evitement d’obstacles 3 Plan du chapitre • Introduction et défis Partie 1 • Odométrie Partie 2 • Filtrage et fusion de capteurs Partie 3 • Autres techniques de localisation Partie 4 4 Partie 3 : Filtrage et fusion de capteurs Concepts de base de théorie des probabilités Supposons que X soit une variable aléatoire (v.a.) et x une valeur spécifique qu’elle peut prendre p(X = x) : probabilité que la variable aléatoire X prend la valeur x Exemple: Le résultat d'un dé est caractérisé par : p(X = 1) = p(X = 2) = p(X = 3) = p(X = 4) = p(X = 5) = p(X = 6) = 1 6 Remarque: Pour simplifier la notation, nous allons omettre de mentionner explicitement la variable aléatoire X, et on va utiliser plutôt l’abréviation p(x) Concepts de base de théorie des probabilités Dans un espace continu, les v.a. peuvent prendre un continuum de valeurs et dans ce cas on parle des fonctions de densité de probabilité (abrév. pdf, « probability density function ») Distribution Γ Pour variables aléatoires continues on a: ∞ p(x)dx = 1 p(x) � −∞ c.-à-d., l’aire sous la courbe est 1 x En outre, les pdf sont toujours non négatives, c'est-à-dire p(x) ≥ 0 Expérance de la v.a. X: E[X] � � ∞ −∞ x p(x) dx Concepts de base de théorie des probabilités La loi ou distribution gaussienne (ou normale) est très utilisée (pas seulement en robotique) p(x) � 1 (x − µ) √ p(x) = exp − 2σ 2 σ 2π 2 � σ µ Si x est une v.a. gaussienne on peut écrire simplement: x ∼ N (µ, σ 2 ) moyenne variance Remarque Si µ = 0 et σ = 1 , la distribution gaussienne est appelée standard Concepts de base de théorie des probabilités Si x ∈ Rm, nous avons une gaussienne multivariée caractérisée par la pdf : où 1 p(x) = � exp − (x − µ)T Σ−1 (x − µ) 2 (2π)m det(Σ) µ moyenne : vecteur m × 1 Σ matrice de covariance : matrice m × m symétrique et semi-définie positive Commande Matlab: � Gaussienne bivariée p(x) 1 � x1 x2 randn(m,n) fournit une matrice m × n qui contient valeurs pseudo-aléatoires tiré d’une distribution gaussienne standard Concepts de base de théorie des probabilités Distribution uniforme continue La densité de probabilité est une fonction porte sur l'intervalle [a, b] : 1 pour x ∈ [a, b] b − a p(x) = 0 sinon 1 b−a Si x est une v.a. uniforme, on écrit x ∼ U (a, b) Commande Matlab: a b rand(m,n) Distribution de Dirac δ(x) = � avec la contrainte: +∞ x=0 0 x �= 0 � ∞ −∞ δ(x)dx = 1 0 Concepts de base de théorie des probabilités Distribution unimodale (« un seul maximum ») Ex. loi gaussienne, Cauchy, Γ , Student, χ2 Distribution multimodale (« plusieurs maxima locales») Ex. mélange gaussien: λ N (µ1 , σ12 ) + (1 − λ) N (µ2 , σ22 ), λ ∈ [0, 1] unimodale bimodale Concepts de base de théorie des probabilités Densité de probabilité jointe La distribution jointe de deux variables aléatoires X et Y est donnée par p(x, y) Elle décrit la probabilité que la v.a. X prend la valeur x & que Y prend la valeur y Si X et Y sont indépendantes, nous avons: p(x, y) = p(x) p(y) Densité de probabilité conditionnelle La probabilité conditionnelle décrit la probabilité que la v.a. X prend la valeur x sous la condition que sûrement la v.a. Y prend la valeur y La probabilité conditionnelle est indiquée p(x | y) et si p(y) > 0, elle est définie comme: p(x, y) p(x | y) = p(y) Concepts de base de théorie des probabilités Si X et Y sont indépendantes p(x) p(y) p(x | y) = = p(x) p(y) c.-à-d., la connaissance de X ne fournit pas d'informations utiles sur la valeur de Y Théorème des probabilités totales Le théorème des probabilités totales tire son origine des axiomes de théorie des probabilités, et il dit que: p(x) = � ∞ −∞ p(x | y) p(y) dy Concepts de base de théorie des probabilités Théorème de Bayes Le théorème de Bayes met en relation la probabilité conditionnelle p(x | y) avec son inverse p(y | x) Sous l’hypothèse que p(y) > 0 , on peut écrire le théorème de Bayes comme: p(y | x) p(x) p(x | y) = p(y) Remarque Dans notre future algorithme récursif de localisation pour un robot mobile, on va utiliser: • Le théorème des probabilités totales dans la phase de prédiction • Le théorème de Bayes dans la phase de correction Concepts de base de théorie des probabilités Fonction de v.a. gaussiennes Nous avons deux variables aléatoires indépendantes et gaussiennes: x1 ∼ N (µ1 , Σ1 ), x2 ∼ N (µ2 , Σ2 ) et une fonction des deux variables aléatoires y = f (x1 , x2 ) . Quelle est la moyenne et covariance de y ? Si la fonction est linéare, c.-à-d. f (x1 , x2 ) = A x1 + B x2 , la v.a. y est aussi gaussienne, et on a (conséquence du théorème des probabilités totales): y ∼ N (A µ1 + B µ2 , AΣ1 AT + BΣ2 BT ) Concepts de base de théorie des probabilités Remarque Par contre, si f (x1 , x2 ) est non lineare, y n’est pas gaussienne, en général! Cependant, on peut considerer une approximation de 1er ordre de f (x1 , x2 ) au point (µ1 , µ2 ) : y � f (µ1 , µ2 ) + Fx1 (x1 − µ1 ) + Fx2 (x2 − µ2 ) où Fx1 � ∂f ∂ x1 et Fx2 � ∂f ∂ x2 et la moyenne et matrice de covariance de y (jacobiens de f) sont, respectivement: E[y] = f (µ1 , µ2 ) Σy = Fx1 Σ1 FTx1 + Fx2 Σ2 FTx2 Classification des problèmes de localisation 1 - Localisation incrémentale • La pose actuelle du robot est mis à jour en utilisant la connaissance de la pose précédente (“position tracking”) • On assume que la pose initiale du robot est connue. En outre l’incertitude sur la pose du robot doit être petite • La « croyance » dans l’état du robot est typiquement modelée avec une pdf unimodale, comme par exemple une pdf gaussienne p(0) p(t − 1) Croyance = belief en anglais Dans une localisation probabiliste (basée sur carte), les croyances dans l’état du robot sont representées comme pdf p(t) ? Classification des problèmes de localisation 2 - Localisation globale • La localisation globale assume que la pose initiale du robot n’est pas connue • Ça veut dire que le robot peut être placé partour dans l’environnement et il peut se localiser d’une façon globale • La croyance initiale dans l’état du robot est typiquement une pdf uniforme p(0) p(t) ? 3 - Problème du robot kidnappé • Le robot est kidnappé et deplacé en un autre endroit. Ce problème est similaire au problème de localisation global seulement si le robot se rend compte d’être été kidnappé p(t − 1) p(t) ? Exemples: • Localisation basée Markov (elle traque la croyance dans la position du robot en utilisant une pdf arbitraire): problèmes 1,2 et 3 • Filtrage pour fusion de capteurs (pdf gaussienne): problème 1 18 Le problème de localisation • Position initiale connue précisément ▫ Le robot mobile se déplace ▫ L’odométrie permet de mesurer son mouvement Perception proprioceptive Croissance permanente de l’incertitude de localisation Pour borner cette incertitude Localisation par rapport à une carte Observer l’environnement (perception extéroceptive) ▫ Laser, ultrasons, vision… 19 Le problème de localisation • Localisation consistante = odométrie + observations extéroceptive • Comment les combiner ? Deux étapes : Prédiction Correction 20 Le problème de localisation 1. La prédiction ▫ Configuration estimée par capteurs proprioceptifs ▫ Exemple encodeurs des roues ( odométrie) p� = f (x, y, θ, ∆sd , ∆sg ) ▫ L’incertitude sur la configuration du robot croît strictement au cours du temps 21 Le problème de localisation 2. La correction ▫ ▫ ▫ ▫ Pérception ou mesure Utilisation des pérceptions extéroceptives Corrige la position estimée par la prédiction Exemple Télémètre pour mesurer la distance d’un mur Correction suivant la position estimée en phase 1 ▫ L’incertitude se réduit 22 Localisation par filtrage • Localisation robuste ▫ Fusion de capteurs ▫ Capteurs hétérogènes • Localisation optimale ▫ Prise en compte d’un maximum de capteur ▫ Filtrage pour fusion de capteurs (FFC) Algorithme récursif optimal de traitement de données Incorpore toute l’information 23 Localisation par filtrage • Filtrage pour fusion de capteurs (FFC) sources d’erreur du système commande système état du système (désiré mais inconnu) dispositifs de mesure sources d’erreur du système mesure, observation FFC estimé optimal de l’état du système 24 Filtrage pour fusion de capteurs • FFC de base ▫ Système supposé Linéaire Bruit blanc gaussien • Pour la plupart des applications de robotique ▫ Système non linéaire ▫ Linéarisation du système: FFC étendu (FFCE) Optimalité non garantie … Hypothèse d’erreur gaussienne (elle rend les calculs plus faciles; pas nécessairement vrai!) 25 Localisation par FFC – illustration • 3 représentations ▫ Croyance dans l’état du robot ▫ Modèle de mouvement ▫ Modèle d’observation Hypothèse: distributions gaussiennes • Phases de prédiction et de mesure ▫ Mise à jour des moyennes et covariances • FFC(E) ▫ Adaptée au problème de localisation incrémentale ▫ Pas adaptée à la localisation globale ou kidnapping 26 Illustration graphique (1D) Phase de prédiction Erreur due à l'odométrie Phase de correction On utilise un range-finder laser pour mesurer la distance du mur 27 Localisation par FFC (1D) croyance(x0) Certitude initiale de localisation distr. gaussienne croyance(x) p(z | x, M ) Application théorème de Bayes croyance(x) Mouvement, prédiction: gaussienne décalée et largeur augmentée (application théorème des probabilités totales) Probabilité post-observation z Fusion des gaussiennes prédiction+observation Remarque: la variance de la croyance résultante est à la fois plus faible que la variance de la probabilité de mesure et de la précédente croyance du robot 28 Localisation par FFC(E) • Pose le problème de localisation comme un problème de fusion de capteurs estimé de position encodeur base de données mise à jour de position (estimation ?) prédiction de position prédiction d’observation observations prédites OK prédictions appariées et observations réelles appariement 1. Prédiction 2. Observation observations réelles (capteurs embarqués) perception données brutes des capteurs ou primitives extraites 29 Localisation par FFC(E) • 1. Mise à jour par prédiction (cf. partie 2, Ch. 1) • 2. Mise à jour par observation ▫ a. Observation Mesures des capteurs Extraction de primitives (droites, portes, valeur, …) ▫ b. Parallèlement : prédiction de mesure Primitives que le robot s’attend à observer à partir de la position où il croit se trouver (c.-à-d. la position prédite en phase 1) 30 Localisation par FFC(E) ▫ c. Appariement Calcul de la meilleure correspondance possible entre: Les primitives extraites de l’observation Les primitives prédites de la prédiction de mesure ▫ d. Estimation Fusion de l’information apportée par ces appariements Mise à jour de la croyance dans l’état du robot 31 1. Mise à jour par prédiction �t dépend de xt−1 et ut (commande) • La position prédite x �t = f (xt−1 , ut ) x • f : fonction d’estimation odométrique de position • En utilisant les propriétés des distributions gaussiennes, � t: on peut calculer la prédiction de covariance P � t = Fx Pt−1 FT + Fu Qt FT P x u ▫ Pt−1 : covariance de l’état précédent du robot xt−1 ▫ Qt : covariance du bruit du modèle de mouvement 32 1. Mise à jour par prédiction • Les deux équations précédentes permettent ▫ De prédire la pose du robot ▫ De prédire son incertitude après un mouvement spécifié par la commande • Rappel ▫ La croyance dans l’état est gaussienne ▫ Mise à jour de moyenne et covariance de distribution 33 2. Mise à jour par observation (4 étapes) • a. Observation ▫ Mesures des capteurs zt au temps t ▫ Ensemble de n observations uniques extraites du capteur zit , i ∈ {0, 1, . . . , n − 1} ▫ observation = marqueur point, droite ou valeur brute ▫ Problème Coordonnées dans un repère local au robot Pour l’appariement, toutes les observation, prédictions, etc., doivent être exprimées dans le même repère Soit h, la fonction de mesure: zt = h(xt , M ) Changement de repère global local Modèle de l’environnement 34 2. Mise à jour par observation (4 étapes) • b. Prédiction de mesure j ≠ i car l’appariement n’est pas fait �t et la carte M : prédictions d’observations � ▫ x zjt Ce que le robot s’attend à percevoir à telle position ▫ Exemple Le robot prédit qu’il se trouve face à une porte Les capteurs renvoient la perception d’un mur La porte est l’observation prédite � zt Le mur est l’observation réelle zt 35 2. Mise à jour par observation (4 étapes) ▫ Calcul de prédiction de mesure Transformer les primitives m j de M dans le repère local Fonction d’observation de la primitive j : � x t , mj ) zjt = hj (� Dépend de la position de chaque primitive m j dans la carte Dépend de la pose courante du robot 36 2. Mise à jour par observation (4 étapes) • c. Appariement ▫ A ce point, on a : Un ensemble d’observations courantes Un ensemble de primitives prédites repère local ▫ But de l’appariement : Identifier toutes les observations correspondant aux primitives prédites ▫ « Formellement » : zjt Associer l’observation zit à sa prédiction � 37 2. Mise à jour par observation (4 étapes) ▫ Pour chaque appariement Calcul de l’innovation vtij Différence entre les mesures observées et prédites: x t , mj ) vtij = zit − � zjt = zit − hj (� ▫ Covariance de l’innovation : j � j T i Σij = H P (H ) + R t t INt jacobien de hj ▫ Validité de l’appariement : Distance de Mahalanobis + seuil g 2 −1 ij ≤ g ) v (vtij )T (Σij t INt covariance (bruit) de i l’observation réelle zt 38 Rappel … Définition générale La distance de Mahalanobis d’une observation z ∈ RN dans un groupe d’observations ayant moyenne µ ∈ RN et matrice de covariance S , est définie: dMah (z) � � (z − µ)T S−1 (z − µ) Si S = IN (matrice identité) la distance de Mahalanobis devient la distance euclidienne 39 2. Mise à jour par observation (4 étapes) • d. estimation ▫ Calcul du meilleur estimé xt de la position du robot ▫ Se base sur : �t La position prédite x Toutes les observations zit 40 2. Mise à jour par observation (4 étapes) ▫ Procédure On empile les zit pour former zt Matrice par blocs On calcule l’innovation composite vt diagonales ij à partir des vt On empile les Hj en Ht On assemble l’incertitude des mesures : Rt = blkdiag(Rit ) Calcul de la covariance de l’innovation composite ΣINt Mise à jour de l’estimée de pose xt et sa covariance Pt : � t + Kt v t xt = x (I) � t − Kt ΣIN KT (II) Pt = P t t � t HT (ΣIN )−1 appelée le gain du FFC avec Kt = P t t 41 TD2 (16 oct.): étude de cas en Matlab ▫ Filtre de fusion de capteurs étendu (FFCE) ▫ Robot unicycle ▫ Primitives dans l’environnement (M): droites droite i Mesures: αti robot rti zit = � αti rti � 42 Terminologie • Le FFC est en fait appelé filtre de Kalman, du nom de son inventeur • On parle de filtre de Kalman ▫ ▫ ▫ ▫ linéaire (KF, 1960) R.E. Kalman (1930 - ) à temps continu (Kalman-Bucy, 1968) étendu (EKF, « extended Kalman filter ») non parfumé (UKF, « unscented Kalman filter » [*]) Distributions gaussiennes Linéarisation des fonctions de mouvement et de mesure différente (on utilise la transformation non parfumé) [*] “Unscented filtering and nonlinear estimation", S.J. Julier, J.K. Uhlmann, in Proceedings of the IEEE, vol. 92, n.3, pp. 401-422, 2004 43 Filtre de Kalman linéaire: équations générales • Système dynamique (à temps discret, k ∈ {1, 2, . . .} ): “t” dans les slides précédentes xk = Ak−1 xk−1 + Bk−1 uk−1 + wk−1 zk = Hk xk + rk Entrée de commande (connue) • Le bruit de process wk−1 et bruit de mesure rk sont blancs, à moyenne zéro, et gaussiens avec matrices de covariance connues Qk et Rk . Les bruits de process et mesure ne sont pas corrélés E(wk ) = 0 E(rk ) = 0 E(wk wjT ) = 0, j �= k E(rk rTj ) = 0, j �= k E(wk wkT ) = Qk E(rk rTk ) = Rk E(rk wjT ) = 0, ∀ j, k 44 Filtre de Kalman linéaire • Le filtre de Kalman pour systèmes discrets est un estimateur récursif • Pour estimer l'état courant, seules l'estimation de l'état précédent et les mesures actuelles sont nécessaires: l'historique des observations et des estimations n'est pas nécessaire • L'état du filtre est représenté par deux variables: �k|k x estimation de l'état à l'instant k, en utilisant l’information jusqu’à l’instant k �k|k )(xk − x �k|k )T ] Pk|k = E[(xk − x Erreur d'estimation �k|k de l’état: x matrice de covariance de l'erreur de estimation de l’état à l'instant k, en utilisant l’information jusqu’à l’instant k 45 Filtre de Kalman linéaire • Initialisation du filtre: �0|0 = E[x0 ] x �0|0 )(x0 − x �0|0 )T ] P0|0 = E[(x0 − x Pour k ∈ {1, 2, . . .} : Prediction �k|k−1 = Ak−1 x �k−1|k−1 + Bk−1 uk−1 x Pk|k−1 = Ak−1 Pk−1|k−1 ATk−1 + Qk−1 46 Filtre de Kalman linéaire Correction Innovation vk �k|k = x �k|k−1 + Kk (zk − Hk x �k|k−1 ) x −1 T −1 Pk|k = (P−1 + H R H ) k k k k|k−1 où Kk = Pk|k−1 HTk (Hk Pk|k−1 HTk + Rk )−1 Pk|k−1 Gain de Kalman (peut être calculé hors ligne et enregistré dans la mémoire) : matrice d'estimation a priori de la covariance de l'erreur Pk|k : matrice d'estimation a posteriori de la covariance de l'erreur Innovation: partie de la mesure qui contient de nouvelles informations sur l'état. L’innovation est blanc avec moyenne zéro et covariance Hk Pk|k−1 HT k + Rk 47 Propriétés du filtre de Kalman Problème: nous voulons trouver l'estimateur qui minimise (à chaque instant de temps k) l’espérance de la norme pondérée de l'erreur d'estimation � k = xk − x �k , c.-à-d. : x �k ] min E[� xTk Sk x �k x où Sk est une matrice de pondération définie-positive qui on peut choisir • Si le bruit de process et de mesure sont gaussiens, à moyenne zéro, pas correlés, et blancs, le filtre de Kalman est la solution au problème ci-dessus • Si le bruit de process et de mesure sont à moyenne zéro, pas correlés et blancs, le filtre de Kalman est la meilleure solution linéaire au problème • Il peut exister un filtre non linéaire qui donne une meilleure solution, mais le filtre de Kalman est le meilleur filtre linéaire • Même si le bruit n'est pas gaussien, le filtre de Kalman est toujours le filtre optimale linéaire (« optimal linear MMSE estimator ») 48 Propriétés du filtre de Kalman • Si le bruit de process et de mesure sont correlés ou colorés (pas blancs) le filtre de Kalman peut être modifié pour résoudre notre problème • Pour systèmes non linéaires, diverses formulations de filtres de Kalman non linéaires se rapprochent de la solution du notre problème (ex. EKF, UKF). Mais toute forme d'optimalité est perdu Pour d'autres propriétés du filtre de Kalman et ses plusieurs formes (filtre d'Information, filtre avec contraintes, filtre square root, et problèmes de prédiction et smoothing …. ) voir le livre: “Optimal State Estimation: Kalman, H∞, and Nonlinear Approaches”, D. Simon, John Wiley & Sons, 2006, Partie II et IV 49 Plan du chapitre • Introduction et défis Partie 1 • Odométrie Partie 2 • Filtrage et fusion de capteurs Partie 3 • Autres techniques de localisation Partie 4 50 Partie 4 : autres techniques de localisation 51 Localisation Monte Carlo • Filtre de Kalman Approche incrémentale (ou récursif) • Filtre particulaire (PF, « Particle filter » [*]) Approche globale Pas limité à distributions unimodales Localisation Monte Carlo: le filtre particulaire est utilisé pour représenter la croyance dans l’état du robot Ensemble de N poses initiales dans la carte Fait évoluer ces N poses possibles en fonction des perceptions proprio- et extéroceptives via un modèle probabiliste Quand les N poses, c.-à-d. les N particules, convergent vers un même état, la localisation est la plus sûre possible [*] “A tutorial on particle filters for online nonlinear/non-Gaussian Bayesian tracking", M.S. Arulampalam, S. Maskell, N. Gordon, T. Clapp, IEEE Trans. Signal Processing, vol. 50, n. 2, pp. 174-188, 2002 52 Exemple N poses initiales Localisation Monte Carlo: très utilisée en littérature (ex. S. Thrun et Google car) 53 Localisation basée marqueurs • Marqueur ▫ Objet passif ou actif ▫ Localisation très précise de ces marqueurs s’ils sont présents dans le champ de perception ▫ Passif Voire localisation basée Kalman Problème de répartition judicieuse des marqueurs (ex. Kiva Systems utilise «codes à barres» sur le sol) 54 Localisation basée marqueurs Exemple : marqueurs optiques passifs Marqueurs rétro réflectifs Mesure d’énergie reflétée vers le robot 3 marqueurs minimum (moins si odométrie) Système Vicon (capteurs IR) 55 Localisation basée marqueurs ▫ Actif Applications industrielles et militaires Localisation la plus sûre … … mais nécessite de pré-équiper l’environnement Exemple : marqueurs actifs à ultrasons Marqueurs partagés Connaissance des positions globale des marqueurs requise • Peu flexible! 56 Localisation basée chemin • Encore plus fiable que les marqueurs • Le chemin du robot est explicitement tracé ▫ Localisation relative au chemin ▫ Exemples Tracé de peinture UV réflective Câble guide sous le sol détecté par induction ▫ Le robot ne DOIT pas trop dévier du chemin • Encore moins flexible qu’avec les marqueurs … 57 Construction autonome de carte • Le SLAM (Simultaneous Localization And Mapping) ▫ Localisation et cartographie simultanées (pas de connaissance a priori d’une carte) ▫ Solution efficace du SLAM: «Saint Graal» de la robotique mobile ▫ Formalisme du filtre de Kalman étendu (EKF SLAM) Estime l’état du robot mobile et son incertitude Estime l’état et l’incertitude de chaque primitive (point, droite, etc.) perçue On construit un état étendu (état robot + état primitives) Recherche très active: SLAM visuel (avec une seule caméra [Davison et al. 2007]), SLAM basé sur graphes, SLAM basé sur filtre particulaire, etc.