Optimisation de trajectoire pour la navigation bathymétrique

publicité
Optimisation de trajectoire pour la navigation
bathymétrique
Kieran Delamotte, Carlo de Franchis, David Gontier, Antoine
Levitt, François Madiot, Carlo Marcati
Sujet proposé par Jérémy Nicola, iXBlue
SEME, Vendredi 16 Janvier 2015
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
Gloutonne
Dijkstra
Résultats
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Sommaire
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Problématique du sous-marin
• Un sous-marin se déplace à profondeur constante (pas de GPS).
• Problème : A cause des imprécisions de ses appareils de mesure,
et de la dérive, il peut se perdre.
• Idée : il peut se recaler en mesurant le fond marin, et en
comparant avec des cartes bathymétriques
Question :
Quelles sont les trajectoires qui permettent un recalage précis ?
Présentation du problème
Sous-marin parfait :
connait parfaitement la trajectoire de A à B.
calcule parfaitement (vx (t), vy (t), h(t)).
vx
t
A
vy
B
t
h
t
Présentation du problème
Sous-marin parfait :
connait parfaitement la trajectoire de A à B.
calcule parfaitement (vx (t), vy (t), h(t)).
vx
t
t
A
vy
B
t
h
t
Présentation du problème
Sous-marin parfait :
connait parfaitement la trajectoire de A à B.
calcule parfaitement (vx (t), vy (t), h(t)).
vx
t
A
vy
B
t
h
t
Présentation du problème
Sous-marin réel : (va suivre la même trajectoire)
connait parfaitement A, et la carte de fond.
e
Il mesure (vfx (t), vfy (t), h(t))
=
(vx (t), vy (t), h(t)) + (evx (t), evy (t), eh (t)).
But : estimer où est B !
vx
A
t
vy
t
h
t
Présentation du problème
Sous-marin réel : (va suivre la même trajectoire)
connait parfaitement A, et la carte de fond.
e
Il mesure (vfx (t), vfy (t), h(t))
=
(vx (t), vy (t), h(t)) + (evx (t), evy (t), eh (t)).
But : estimer où est B !
vx
t
t
A
vy
?
t
h
t
Présentation du problème
Sous-marin réel : (va suivre la même trajectoire)
connait parfaitement A, et la carte de fond.
e
Il mesure (vfx (t), vfy (t), h(t))
=
(vx (t), vy (t), h(t)) + (evx (t), evy (t), eh (t)).
But : estimer où est B !
vx
A
t
t
vy
t
h
t
Présentation du problème
Sous-marin réel : (va suivre la même trajectoire)
connait parfaitement A, et la carte de fond.
e
Il mesure (vfx (t), vfy (t), h(t))
=
(vx (t), vy (t), h(t)) + (evx (t), evy (t), eh (t)).
But : estimer où est B !
vx
t
A
B?
vy
t
h
t
Notre problème
Problème :
Quel est le chemin de A à B qui minimise "l’incertitude" en B ?
Notre approche :
1
Définition de la notion d’incertitudes
2
Calcul effectif du coût d’un chemin du sous-marin parfait
3
Optimisation de chemin
Enoncé du problème sous forme continue
Soit γ0 ∈ C 0 ([0, T ], R2 ) la trajectoire du sous-marin parfait, on
note Aγ0 l’ensemble des trajectoires admissibles:
Aγ0 :=
n
γ ∈ C 0 ([0, T ], R2 ),
γ(0) = A,
∀ 0 ≤ t ≤ T,
kγ 0 (t) − γ00 (t)k∞ ≤ v ,
∀ 0 ≤ t ≤ T,
|H(γ(t)) − H(γ0 (t))| ≤ h .
o
L’incertitude de γ0 (fonction coût) est
c(γ0 ) = Vol {γ(T ), γ ∈ Aγ0 } .
On cherche alors
n
o
arg min c(γ0 ), γ0 ∈ C 0 ([0, T ], R2 ), γ0 (0) = A, γ0 (T ) = B .
Sommaire
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Algorithme de recalage
Algorithme de recalage (pour le sous-marin réel) :
Entrée : γ0 := {A, A1 , A2 , . . . , AN = B}1 la trajectoire du
sous-marin parfait.
Sortie : L’incertitude c(γ0 ).
Idée :
On pose
Jk := γ
kT
N
, γ ∈ Aγ0 ,
l’ensemble des positions admissibles au temps k.
On a J0 = {A}, et on peut calculer les Jk par récurrences.
On a c(γ0 ) = ] (JN ) (incertitude finale), ou
P
c(γ0 ) = N
k=1 ] (Jk ) (incertitude globale).
1
Ici, Ak = γ0 (kT /N)
Une étape de recalage
Jk
Ak
On part de l’ensemble Jk (avec Ak ∈ Jk ).
Une étape de recalage
Jk
Ak
vk
Ak+1
On lit une vitesse vfk = vk + ev ,k , avec |ev ,k | < v .
Une étape de recalage
Jk
Ak
T (Jk )
Ak+1
On translate l’ensemble par vk , et on prend son v -voisinage.
Une étape de recalage
Jk
Ak
{H −1 (hk+1 )}
{H −1 (hk+1 − h )} {H −1 (hk+1 + h )}
Ak+1
On lit une hauteur hg
k+1 = hk+1 + eh,k+1 , avec |eh,k+1 | < h .
Une étape de recalage
Jk
Ak
Ak+1
On prend l’intersection.
Une étape de recalage
Jk
Ak
Jk+1
Ak+1
On obtient Jk comme l’intersection de 2 ensembles.
Algorithme de recalage sur données réelles
Algorithme de recalage sur données réelles
Algorithme de recalage sur données réelles
Algorithme de recalage sur données réelles
Algorithme de recalage sur données réelles
Algorithme de recalage sur données réelles
Algorithme de recalage sur données réelles
Sommaire
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
Gloutonne
Dijkstra
Résultats
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Stratégie gloutonne
Remarque : Il faut trouver des forts gradients, qui sont
successivement "orthogonaux" !
Jk−1
Stratégie gloutonne
Remarque : Il faut trouver des forts gradients, qui sont
successivement "orthogonaux" !
Jk−1
T (Jk−1 )
Stratégie gloutonne
Remarque : Il faut trouver des forts gradients, qui sont
successivement "orthogonaux" !
Jk
∇H(Ak )
Stratégie gloutonne
Remarque : Il faut trouver des forts gradients, qui sont
successivement "orthogonaux" !
T (Jk )
Jk
Stratégie gloutonne
Remarque : Il faut trouver des forts gradients, qui sont
successivement "orthogonaux" !
∇H(Ak+1 )
Jk+1
Algorithme glouton
On en déduit une stratégie gloutonne :
On pose γ = [A], et P = A.
Tant que P 6= B,
Calculer
EP = {P 0 , rmin ≤ d(P, P 0 ) ≤ rmax , d(P 0 , B) < d(P, B)}.
Si B ∈ EP , γ = [γ, B], P = B.
Sinon, poser
n
o
Pnext = arg min ∇H(P 0 ) ∧ ∇H(P), P 0 ∈ EP
puis γ = [γ, Pnext ], et P = Pnext .
Remarque : Les constantes rmin et rmax prennent en compte la
vitesse minimale et maximale du sous-marin, et la fréquence
d’échantillonnage !
Stratégie globale
La stratégie gloutonne est locale: on cherche un algorithme global.
On considère les pixels de la carte comme des noeuds et on calcule
le coût de passage de l’un à l’autre.
En pratique, on définit
c(i, j) = (|∇H(i) ∧ ∇H(j)| − α (d(j, B) − d(i, B)))−1 .
Stratégie globale
La stratégie gloutonne est locale: on cherche un algorithme global.
On considère les pixels de la carte comme des noeuds et on calcule
le coût de passage de l’un à l’autre.
En pratique, on définit
c(i, j) = (|∇H(i) ∧ ∇H(j)| − α (d(j, B) − d(i, B)))−1 .
Stratégie globale
La stratégie gloutonne est locale: on cherche un algorithme global.
On considère les pixels de la carte comme des noeuds et on calcule
le coût de passage de l’un à l’autre.
En pratique, on définit
c(i, j) = (|∇H(i) ∧ ∇H(j)| − α (d(j, B) − d(i, B)))−1 .
Algorithme global
On peut donc définir un nouvel algorithme
Pour tout (P, P 0 ) tels que
rmin ≤ d(P, P 0 ) ≤ rmax , d(P 0 , B) < d(P, B),
on calcule c(P, P 0 ).
On construit la matrice de coût du graphe.
On applique l’algorithme de Dijkstra et on obtient la
trajectoire du coût minimal entre A et B.
Croissance en N 2 (rmax − rmin )2 du coût de l’algorithme : trop lent
pour des cartes de taille elevée.
Autre version
C
Soit r ∈ (0, 1). Dans chaque sous partie C , sélectionner
l’ensemble des points P tels que
k∇h(P)k ≥ k∇hkL∞ (C ) (1 − r ).
Coût c(P, Q) = c({P, Q}) pour tout Q ∈ EP .
Résultats
Glouton
Dijkstra 1
Dijkstra 2
Résultats
Glouton
Dijkstra 1
Dijkstra 2
Sommaire
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Modèle jouet
On cherche à aller sur des zones de grande pente:
c(γ) = −
Z 1
|∇h(γ(t))|2 dt
t=0
Mal posé (les suites minimisantes se localisent sur les maxima de
∇h) : régularisation ?
Z 1
c(γ) =
a|γ 0 (t)|2 − b|∇h(γ(t))|2 dt
t=0
Bien posé ? Minimiseurs ? Comment prendre en compte
l’heuristique que γ doit alterner les directions de ∇h pour se
localiser ?
Un modèle un peu plus complexe
Modèle effectif pour les incertitudes en x et y σx et σy :
c(γ) = σx (1) + σy (1), où
σ̇x = a − bσx (∂x h(γ(t)))2
σ̇y = a − bσy (∂y h(γ(t)))2 .
Amortissement exponentiel vers un point d’équilibre
σx ∼ 1/(∂y h(γ(t)))2 . Sous la forme générale d’un contrôle
optimal. Problème : modèle non isotrope (trajectoires
diagonales ?)
Généralisation : représenter l’incertitude par une matrice SDP A.
Si on pose G = ∇h∇hT ,
√ √
Ȧ = aA − b GA G.
On modifie les incertitudes dans la direction ∇h, on n’y touche pas
dans ∇h⊥ . Problème : A ne reste pas forcément SDP. Y a-t-il une
bonne généralisation ?
Sommaire
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Modélisation des incertitudes
Sources d’incertitude : précision de l’accéléromètre, erreurs
d’intégration (fréquence finie), erreur numérique (stockage en
virgule flottante)
Dérive de l’estimation de position
Modélisation délicate
Si on fait une erreur initiale sur l’accélération, dérive en t 2
Si on fait une erreur initiale sur la vitesse, dérive en t
Compensation des erreurs ? Marche aléatoire, dérive en
t 3/2 ? t 5/2 ?
Non trivial en pratique
√
t ?
Modélisation probabiliste
Une approche par intervalles néglige la compensation des
erreurs et est trop pessimiste. Modèle probabiliste ?
Soit (x0 , x1 . . . , xN ) le chemin suivi par le sous-marin, supposé
exact.
Soit Xn la position estimée du sous-marin. Loi de Xn+1 ?
Sans bathymétrie, on met à jour la position avec le vecteur
vitesse vn = xn+1 − xn , entaché (pour simplifier) d’une erreur
aléatoire εv ∼ N(0, σv )
La bathymétrie nous donne h(Xn+1 ) = h(xn+1 ) + εh , avec une
erreur εh ∼ N(0, σh )
Xn+1 ∼ L(Xn + vn + εv h(Xn + vn + εv ) = h(xn+1 ) + εh )
Modélisation probabiliste
Xn+1 ∼ L(Xn + vn + εv h(Xn + vn + εv ) = h(xn+1 ) + εh )
En notant formellement P(X = x ) pour la densité de X en x ,
P(Xn+1 = x ) = P(Xn + vn + εv = x h(Xn + vn + εv ) = h(xn+1 ) + εh )
1
P(Xn + vn + εv = x ∩ h(Xn + vn + εv ) = h(xn+1 ) + εh
N
1
= P(Xn + vn + εv = x ) P(h(x ) = h(xn+1 ) + εh ),
N
=
où N est choisi pour normaliser Xn+1 .
On calcule P(h(x ) = h(xn+1 ) + εh ) (facile si εh est gaussienne), on
calcule P(Xn + vn + εv = x ) (translation et convolution), on
multiplie et on normalise. En théorie bien plus précis que
l’approche par boites, mais quel traitement des incertitudes de
vitesse ? Lien avec les filtres de Kalman ?
Sommaire
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Conclusion (ce qu’on a fait)
Comprendre et “mathématiser” le problème:
Traduction du problème dans un langage mathématique grâce
aux précisions de l’encadrant.
Développement d’un algorithme de recalage pour affiner
l’intuition.
Traduction des données physiques (vitesse, carte
bathymétrique ) en conditions algorithmiques/mathématiques :
couronne d’admissibilité, choix d’une direction de fort gradient.
Proposition de deux algorithmes discrets testés sur les cartes
fournies :
Stratégie gloutonne, locale et incrémentale, d’après les
données physiques (gradient, distance, vitesse).
Stratégie globale basée sur un graphe décrivant les relations
entre des points d’intérêts de la carte. La trajectoire de coût
minimal est trouvée grâce à l’algorithme de Dijkstra.
Conclusion (pistes futures)
Modélisation continue (modèle intégral, contrôle d’équations
différentielles)
Modélisation probabiliste (calcul de lois)
Sommaire
1
Présentation du problème
2
Algorithme de recalage
3
Optimisation de trajectoire
4
Pistes continues
5
Pistes probabilistes
6
Conclusion
7
Bibliographie et ouvertures
Quelques pistes bibliographiques
S.Barkby, S.B. Williams O.Pizarro, M.Y. Jakuba (2006).
Amélioration d’une carte existante lors de la navigation.
Contrôle avec une méthode de SLAM et un filtre de Rao.
D.Wettergreen (2008). Repositionnement sous l’eau.
Découpe du volume à l’aide d’un octree, et filtre de Kalman.
E.Galceran & M.Carreras (2013) : article de review en CPP
(Coverage Path Planning). Déterminer le chemin passant par
les points d’un volume (une aire) tout en évitant les obstacles
éventuels. Algorithme de slicing. Applications en bathymétrie.
E. Galceran, R. Campos N.Palomeras, D. Ribas, M. Carreras
& P. Ridao (2014). Trajectoire pour la cartographie du
domaine. Séparation des régions selon le module du gradient.
Régions de gradient fort traitées par un algorithme de slicing,
autres régions traitées par l’algorithme de Boutrosphedon.
Merci pour votre attention !
et merci à Jérémy Nicola et aux organisateurs.
Téléchargement