Les états de collision inévitables, un outil pour la sûreté - e

publicité
Les états de collision inévitables, un outil pour la sûreté
des systèmes robotiques
Antoine Durand-Gasselin,
encadré par Thierry Fraichard,
equipe eMotion, laboratoire Inrialpes
Contexte : La navigation autonome sûre pour les systèmes robotiques opérant dans un environnement avec des obstacles dynamiques est actuellement un grand enjeu de la recherche en
robotique. C’est pour cela que l’on définit la notion d’ICS (inevitable collision state, ou état de collision inévitable), état dans lequel, quelque soit le contrôle appliqué au système robotique étudié,
celui-ci entre en collision avec un obstacle. Il faudra veiller à ce qu’un système robotique n’entre
donc jamais dans un tel état, et tant qu’il n’est pas dans un tel état, on peut considérer qu’il est
dans un état sûr.
C’est sur cette notion d’ICS que j’ai travaillé, et j’ai implémenté un algorithme de calcul d’états
de collisions inévitables en espace dynamique pour un modèle robotique donné.
1 Le calcul des états de collision inévitable
1.1 Définition
L’état d’un système robotique est un ensemble de variables dont la connaissance à un instant
t0 permettent non seulement de connaître la position et l’orientation de chaque point du système
robotique à cet instant, mais qui en plus combiné à la connaissance des contrôles appliqués à ce
système robotique de l’instant t0 jusqu’à un instant tf déterminent la configuration du système
de t0 à tf .
On définit une maneuvre comme la donnée d’une succession de contrôles appliqués pendant
une certaine durée. On définit la notion d’état de collision inévitable pour un système robotique
donné, comme un état pour lequel quelque soit la trajectoire suivie par le système, elle rentre en
collision avec un obstacle de l’environnement.
Soit A un système robotique. Sa dynamique est décrite par le système différentiel suivant :
ṡ = f (s, u) où s ∈ S est l’état de A, ṡ sa dérivée temporelle et u ∈ U un contrôle. S et U sont
respectivement l’espace des états et l’espace des contrôles du système A. Soit φ ∈ Φ une manoeuvre, une sucession de controles. φ représente une trajectoire de A. Partant d’un état initial s0
(à l’instant 0) et sous l’effet de la maneuvre φ, l’état de A à l’instant t est noté φ(s 0 , t).
On définit l’ensemble des états de collision inévitable avec un obstacle ICO(B, φ) comme
l’ensemble des états s tels que il existe un instant t, φ(s, t) est un état de collisison avec B. Et ICO
admet la propriété suivante :
ICO(∪i Bi , φ) =
ICO(Bi , φ)
i
On définit la notion d’état de collision inévitable, comme l’ensemble des états de collision
inévitable à manoeuvre fixée, pour toute maneuvre φ
ICO(B) =
ICO(B, φ) =
ICO(Bi , φ)
Φ
Φ
1
i
Voici un exemple qui donne une idée du calcul des états de collision inévitables. On considère
un système robotique de type voiture. On représente là un plan de l’espace des états. Le plan
à vitesse constante non nulle et orientation constante vers les y croissants. Nous sommes dans
le cas d’un seul obstacle fixe, un segment. On voit dessiné de différentes couleurs les ICO(B, φ)
pour des maneuvres de freinage maximum et d’orientation diverse des roues.
Fig.1 : Représentation des ICO
1.2 Approximations dans les calculs
Cette notion d’état de collision inévitable n’est pas calculable dans la pratique, et il apparaît
même, que des discrétisations fines des espaces considérés sont tout simplement inenvisageables.
Nous nous heurtons là au problème de la malédiction de la dimensionnalité, en effet la complexité
des méthodes de discrétisation brutales croît expobentiellement en la dimension du système robotique étudié.
Il faut donc trouver une méthode d’approximation du calcul de ces états de collisions inévitable. Dans Inevitable Collision States A Step Towards Safer Robots ?, Fraichard et Asama nous
donnent une première méthode d’approximation, à savoir de ne pas considérer toutes les maneuvres possibles, mais uniquement un petit nombre de maneuvres. L’intérêt de cette méthode
est qu’elle donne une surapproximation de l’ensemble des états de collision inévitable, elle permet d’assurer la sûreté du système. Cependant si elle permet d’obtenir dans des cas très précis
(typiquement des illustrations) des résultats probants, il manque un algorithme pour décider
quelles trajectoires choisir.
Fraichard et Parthasarathi proposent dans An inevitable Collision State-Checker for a Car-Like
Vehicle de sélectionner les manoeuvres d’évitement des obstacles. À savoir les manoeuvres (une
pour chaque obstacle) telles que pour chaque obstacle Bi , φi minimise ICO(Bi , φi ).
Ces manoeuvres sont en fait des manoeuvres d’imitation de trajectoire. En effet si la trajectoire du système robotique est la même que celle de l’obstacle étudié, alors les états de collision
inévitable pour cet obstacle et cette trajectoire sont minimaux, puisque s’ils ne sont pas en collision à l’instant initial, ils ne seront jamais en collision, on a ICO(B, φmo ) = B(0). Seulement, à
l’instant initial, selon l’état du système robotique, il n’est pas toujours possible de suivre la même
trajectoire qu’un obstacle donné.
2
Fig.2 : A imite la trajectoire de B : A peut imiter immédiatement la trajectoire de B (à gauche) ; A doit
d’abord rattrapper la trajectoire de B (en rouge) avant d’imiter (à droite).
Les manoeuvres d’imitation se déroulent donc en deux parties :
– une première phase dite de rattrapage, où A va chercher à atteindre une vitesse nulle par
rapport à B
– une deuxième phase pendant laquelle A se contente de suivre B
C’est sur le calcul de ces manoeuvres d’évitement (par imitation) que j’ai travaillé.
2 Le calcul des maneuvres d’évitement
2.1 Le modèle étudié
Pour calculer ces manoeuvres, on travaille tout d’abord sous une hypothèse assez forte : on
considère que le modèle du futur est connu, la trajectoire des obstacles est donc connue. On
suppose également que le robot peut, s’il est dans une bonne configuration, imiter la trajectoire
de chaque obstacle.
Il faut ensuite calculer les manoeuvres d’évitement. Il faut tout d’abord fixer un modèle
de système robotique. J’ai choisi un système robotique de type voiture, un état est défini par
(x, y, θ, v, ξ), où x et y représentent les coordonnées de la roue arrière, θ l’orientation du système,
v la vitesse de la roue avant et ξ l’angle de braquage de la roue avant. Un contrôle est défini par
(uv , uξ ), respectivement l’acceleration et la vitesse angulaire de braquage de la roue avant. Le
système robotique est régi par le système différentiel suivant :
⎧
ẋ = v cos θ cos ξ
⎪
⎪
⎪
⎪
ẏ
⎨ = v sin θ cos ξ
θ̇ = v sin ξ /L
⎪
⎪
v̇
= uv
⎪
⎪
⎩ ˙
ξ = uξ
Fig.3 : Le système de type voiture A
3
Avec les contraintes suivantes :
– ξ ∈ [−ξmax ; ξmax ] où ξmax est l’angle de braquage maximal
– uv et uξ sont eux aussi bornés par a et b
– v ∈ [0, vmax ] où vmax est la vitesse maximale du véhicule
J’ai étudié le cas où l’environnement se compose d’obstacles mobiles en translation rectiligne
uniforme. Grâce à cette hypothèse simplificatrice j’ai pu calculer exactement la partie de rattrapage des manoeuvres d’imitation, qui est la plus courte. J’arrive donc à déterminer la manoeuvre
qui permet d’atteindre le plus rapidement possible la trajectoire de l’obstacle mobile (ou fixe)
considéré.
Dans le cas du modèle étudié, cela revient à calculer une manoeuvre qui amène de l’état initial
à un état dans lequel le véhicule est bien orienté, se meut à la bonne vitesse et ses roues avant
sont alignées. Pour s’y prendre on va calculer (pour une orientation initiale donnée et une vitesse
initiale donnée ; on supposera que l’angle initial des roues est nul), une fonction du temps t qui
donne l’angle de déviation maximal qu’il est possible de faire à partir de la vitesse initiale et en
atteignant la vitesse finale à l’instant t, tout en ayant les roues droites.
F (t) = max{θ(t) − θ(0)|v(t) = vf , ξt = 0}
φ∈Φ
C’est la déviation maximale que l’on puisse espérer pour une manoeuvre de durée t et telle
que l’on atteigne vf et ξ = 0 à l’instant t. Si on arrive à trouver la manoeuvre qui maximise, on a
a alors la manoeuvre de rattrapage optimale en temps, si on cherchait à atteindre une déviation
de trajectoire d’angle F (t).
Or on se doute bien que les manoeuvres qui maximisent seront les manoeuvres qui auront
des controles maximaux. On recherche donc des manoeuvres constantes par morceaux. On peut
de plus espérer un relatif découplage des variables de contrôle afin de leur donner successivement des valeurs nulles ou limites. C’est exactement un tel découplage que l’algorithme que j’ai
implémenté effectue.
. On calcule d’abord la partie variation de vitesse de la manoeuvre, telle qu’à l’instant t on
obtienne la vitesse finale. On essaiera d’avoir toujours la plus grande vitesse possible car
dans ce modèle envisagé, plus on va vite, plus on tourne vite.
. Une fois que l’on aura calculé la partie variation de vitesse de la manoeuvre, on calculera
la partie “controle du guidon”. Selon la durée pendant laquelle on applique un controle
du guidon maximal (tout en prenant garde à ramener avant t les roues dans l’axe), l’angle
de déviation de trajectoire sera plus ou moins grand. Si on veut effectuer la plus grande
variation de trajectoire possible, on effectuera un controle maximal sur le guidon pendant
le plus longtemps possible, puis en remettant les roues droites le plus tard possible).
On a donc une fonction qui permet de calculer la déviation de trajectoire maximale pour un
laps de temps de manoeuvre donné. On calculera donc la préimage (ou une approximation de
celle-ci) de la déviation désirée, on obtient une durée qui détermine entièrement la manoeuvre
optimale de cette durée.
4
Fig.4 : Représentation d’une manoeuvre optimale pour une durée donnée t. On applique des controles
maximaux. Attention sont représentées les grandeurs dont dérivent les controles. Les controles donnés
sont la pente des grandeurs représentées
La partie de rattrapage est donc entièrement calculée, la deuxième partie de la manoeuvre
étant juste une translation rectiligne uniforme, on a donc une méthode pour calculer l’intégralité
de la manoeuvre.
2.2 Quelques résultats
Une fois ces manoeuvres calculées, reste à s’en servir pour calculer les états des collision inévitable. Pour chacune des manoeuvres φ calculées, et pour chaque obstacle B, on calcule ICO(B, φ).
J’ai choisi une implémentation discrète pour stocker ce résultat, j’ai donc projeté les ICO(B, φ)
dans des bitmaps. Cela reste cohérent avec la façon dont j’ai calculé les manoeuvres, à savoir
comme des préimages d’une fonction. Cette démarche d’approximation dans l’implémentation
de l’algorithme assure un grande rapidité, mais aussi quelque chose de relativement cohérent
avec la réalité, où l’on peut dans le cas d’un système robotique, discrétiser le temps et l’espace
pour le système étudié.
Une fois qu’on
a les bitmap des ICO(B, φ), pour calculer les états de collision inévitable, il
ICO(B, φ).
reste à calculer
φ B
Ci-après quelques résultats de mon implémentation de calcul des états de collision inévitables. À cause de la malédiction de la dimensionalité, on calcule juste des tranches à θ, ξ, v constants
de l’espace des états du système robotique. On étudie la tranche à v = 8m/s, θ = 0 (vers le bas)
et ξ = 0.
5
Fig.5 : Représentation des ICO(B, φ) de la couleur de B.
Fig.6 : Les états de collision inévitable.
6
3 Perspectives
Si cet algorithme ne considère pas toujours assez de manoeuvres possibles pour calculer finement les états de collision inévitables, et si quelques fois apparaissent quelques parasites, il a
toutefois la grande force de présenter une surapproximation des états de collision inévitable. On
a donc vraiment un outil prêt pour un quelconque algorithme de planification du mouvement.
Cependant la notion d’état de collision inévitable telle qu’elle a été définie a un gros inconvénient : elle ne marche que dans le cas d’un environnement dont le futur est connu. En effet, le
fait que la notion d’état de collision inévitable s’affranchisse totalement de tout horizon temporel
doit bien se payer quelque part.
Enfin pour en revenir à l’algorithme que j’ai implémenté, je pense qu’il est possible de l’améliorer en calculant ces manoeuvres d’imitation/évitement dans le cas d’un mouvement quelconque des obstacles, soit d’une façon analytique optimale comme ce que j’ai fait, ce qui rend
difficilement généralisables les résultats obtenus, soit d’une manière beaucoup plus générale, en
calculant au pas à pas une correction de trajectoire. Cette deuxième méthode permettrait en plus
de s’affranchir davantage de cette connaissance du futur (puisque le début de la manoeuvre dépendrait seulement du début de la trajectoire future de l’obstacle).
Bibliographie
A Short Paper about Motion Safety,
Fraichard, 2007
Inevitable Collision States A Step Towards Safer Robots ?,
Fraichard & Asama, 2004
An inevitable Collision State-Checker for a Car-Like Vehicle,
Fraichard & Parthasarathi
Greedy but Safe Replanning under Kinodynamic Constraints,
Bekris & Kavraki
Comparing forward and backward reachability as tool for safety analysis,
Mitchell
A time dependant Hamilton-Jacobi formulation of reachable sets for continuous dynamic games,
Mitchell, Bayen Tomlin
7
Téléchargement