planification et exécution de plan pour la robotique autonome

8
Planification et exécution de plan pour la robotique autonome * Matthieu Gallien Félix Ingrand LAAS-CNRS 7 avenue du Colonel Roche - 31077 Toulouse Cedex 4 - France {matthieu.gallien, felix.ingrand}@laas.fr Résumé Nous nous intéressons à la planification de missions et à leur exécution à bord de robots mobiles autonomes dans un environnement dynamique et incertain. Dans ce contexte nous avons développé IxTeT, un système capable de pro- duire, exécuter et réparer des plans. Ce système utilise des techniques de planification temporelle et non linéaire. Il manipule des plans flexibles afin de pouvoir les adap- ter à la réalité de l’exécution. Cependant, en cas de pro- blème, IxTeT met en œuvre une stratégie de réparation locale d’un plan ou une replanification complète. Nous avons ensuite modifié ce système afin de pouvoir exprimer des contraintes temporelles incertaines. Afin de tirer parti de ces extensions récentes, nous avons décidé de modifier l’heuristique de planification. IxTeT a été intégré dans l’ar- chitecture LAAS et testé sur un robot (ATRV). Nous avons réalisé une étude expérimentale de nos contri- butions à la fois sur un robot et sur son simulateur afin de pouvoir quantifier les bénéfices éventuels de ce travail. Nous proposerons une solution pour certains problèmes mis à jour lors de nos travaux. 1 Introduction 1.1 Positionnement et état de l’art Récemment, plusieurs missions d’exploration robotisées ont été envoyées sur la planète Mars. En 1997, le “ro- ver" Sojourner, de la NASA, parcourt quelques dizaines de mètres en un peu plus de quatre-vingt jours. En 2003, la mission MER de la NASA comporte deux “rovers" qui parcourent près de dix kilomètres au total. Ils sont capables d’utiliser une autonomie limitée pour eectuer des navi- gations basées sur de la stéréo vision. En 2011, les mis- sions ExoMars de l’ESA et Mars Science Laboratory de la NASA ont pour ambition de franchir une nouvelle étape de l’autonomie avec notamment des navigations au delà de l’horizon visuel. Plus tard, lorsque l’exploration extrater- restre humaine reprendra, nécessairement, des robots tou- jours plus nombreux l’auront préparée et l’accompagne- ront. * Ce travail a été partiellement financé par le FSE (Fond Social Euro- péen). La complexité des systèmes robotiques actuels et futurs crée un besoin pour une autonomie accrue. Elle passe par un accroissement de leurs capacités décisionnelles. Ces ro- bots devront être capables d’anticiper leurs actions sur un horizon temporel compatible avec les contraintes liées aux communications avec leurs opérateurs humains. Dans le cas d’un robot martien, aux quarante minutes aller-retour d’une communication, il faut rajouter des contraintes de visibilité des émetteurs/récepteurs terrestres capables de communiquer avec eux. La planification constitue alors une réponse possible à cette problématique. En 2003, MapGen [1], un système de planification de tâches au sol, a permis d’accroître de 25% les retombées scientifiques de la mission MER. Cependant, le mode de fonctionnement de ces "rovers" consiste à exécuter une sé- quence de commandes envoyées depuis la Terre jusqu’à sa fin, ou à la détection d’un défaut. Cette absence de raison- nement à bord, ou boucle ouverte, implique des périodes d’inactivité et des pertes de données scientifiques lorsque le moindre défaut est détecté. Nous proposons d’utiliser la planification de tâches embar- quée afin de permettre une commande de systèmes robo- tiques mobiles autonomes. A cette fin, IxTeT réalise la pla- nification des tâches de la mission, puis exécute son plan en tenant compte des contraintes temporelles. Plusieurs stra- tégies d’adaptation en cas de défauts ont été implémentées. D’autres planificateurs comme Europa [2] et CASPER [3] ont été utilisés pour la commande de robots mobiles. Le premier utilise des plans flexibles qui sont ensuite exécu- tés et adaptés au cours de l’exécution sans avoir besoin de replanifier grâce à la flexibilité du plan. Le second propose une approche diérente de l’exécution en utilisant la ré- paration de plan de manière continue associée à des plans complètement instanciés. 1.2 Exemple : mission d’exploration Nous avons eectué des expérimentations à la fois en si- mulation mais aussi à bord du robot Dala (Fig.1). Nous prenons pour exemple un domaine appelé "Explorateur", inspiré d’une mission d’exploration extra planétaire. Cette mission comporte plusieurs demandes de prises de vues à des positions géographiques données, des communications durant des fenêtres de visibilité ainsi que le retour à son

Upload: others

Post on 18-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Planification et exécution de plan pour la robotique autonome

Planification et exécution de plan pour la robotique autonome∗

Matthieu Gallien Félix Ingrand

LAAS-CNRS

7 avenue du Colonel Roche - 31077 Toulouse Cedex 4 - France{matthieu.gallien, felix.ingrand}@laas.fr

RésuméNous nous intéressons à la planification de missions et àleur exécution à bord de robots mobiles autonomes dans unenvironnement dynamique et incertain. Dans ce contextenous avons développé IxTeT, un système capable de pro-duire, exécuter et réparer des plans. Ce système utilisedes techniques de planification temporelle et non linéaire.Il manipule des plans flexibles afin de pouvoir les adap-ter à la réalité de l’exécution. Cependant, en cas de pro-blème, IxTeT met en œuvre une stratégie de réparationlocale d’un plan ou une replanification complète. Nousavons ensuite modifié ce système afin de pouvoir exprimerdes contraintes temporelles incertaines. Afin de tirer partide ces extensions récentes, nous avons décidé de modifierl’heuristique de planification. IxTeT a été intégré dans l’ar-chitecture LAAS et testé sur un robot (ATRV).Nous avons réalisé une étude expérimentale de nos contri-butions à la fois sur un robot et sur son simulateur afinde pouvoir quantifier les bénéfices éventuels de ce travail.Nous proposerons une solution pour certains problèmesmis à jour lors de nos travaux.

1 Introduction1.1 Positionnement et état de l’artRécemment, plusieurs missions d’exploration robotiséesont été envoyées sur la planète Mars. En 1997, le “ro-ver" Sojourner, de la NASA, parcourt quelques dizainesde mètres en un peu plus de quatre-vingt jours. En 2003,la mission MER de la NASA comporte deux “rovers" quiparcourent près de dix kilomètres au total. Ils sont capablesd’utiliser une autonomie limitée pour effectuer des navi-gations basées sur de la stéréo vision. En 2011, les mis-sions ExoMars de l’ESA et Mars Science Laboratory de laNASA ont pour ambition de franchir une nouvelle étapede l’autonomie avec notamment des navigations au delà del’horizon visuel. Plus tard, lorsque l’exploration extrater-restre humaine reprendra, nécessairement, des robots tou-jours plus nombreux l’auront préparée et l’accompagne-ront.

∗Ce travail a été partiellement financé par le FSE (Fond Social Euro-péen).

La complexité des systèmes robotiques actuels et futurscrée un besoin pour une autonomie accrue. Elle passe parun accroissement de leurs capacités décisionnelles. Ces ro-bots devront être capables d’anticiper leurs actions sur unhorizon temporel compatible avec les contraintes liées auxcommunications avec leurs opérateurs humains. Dans lecas d’un robot martien, aux quarante minutes aller-retourd’une communication, il faut rajouter des contraintes devisibilité des émetteurs/récepteurs terrestres capables decommuniquer avec eux. La planification constitue alorsune réponse possible à cette problématique.En 2003, MapGen [1], un système de planification detâches au sol, a permis d’accroître de 25% les retombéesscientifiques de la mission MER. Cependant, le mode defonctionnement de ces "rovers" consiste à exécuter une sé-quence de commandes envoyées depuis la Terre jusqu’à safin, ou à la détection d’un défaut. Cette absence de raison-nement à bord, ou boucle ouverte, implique des périodesd’inactivité et des pertes de données scientifiques lorsquele moindre défaut est détecté.Nous proposons d’utiliser la planification de tâches embar-quée afin de permettre une commande de systèmes robo-tiques mobiles autonomes. A cette fin, IxTeT réalise la pla-nification des tâches de la mission, puis exécute son plan entenant compte des contraintes temporelles. Plusieurs stra-tégies d’adaptation en cas de défauts ont été implémentées.D’autres planificateurs comme Europa [2] et CASPER [3]ont été utilisés pour la commande de robots mobiles. Lepremier utilise des plans flexibles qui sont ensuite exécu-tés et adaptés au cours de l’exécution sans avoir besoin dereplanifier grâce à la flexibilité du plan. Le second proposeune approche différente de l’exécution en utilisant la ré-paration de plan de manière continue associée à des planscomplètement instanciés.

1.2 Exemple : mission d’explorationNous avons effectué des expérimentations à la fois en si-mulation mais aussi à bord du robot Dala (Fig.1). Nousprenons pour exemple un domaine appelé "Explorateur",inspiré d’une mission d’exploration extra planétaire. Cettemission comporte plusieurs demandes de prises de vues àdes positions géographiques données, des communicationsdurant des fenêtres de visibilité ainsi que le retour à son

Page 2: Planification et exécution de plan pour la robotique autonome

point de départ.Lors de cette mission, il se déplace dans un environnementinitialement inconnu. Pour cela, il utilise une navigationvisuelle adaptée. Par conséquent, les déplacements sont in-certains quant à leur réussite ou leur durée. Les prises devues scientifiques introduisent également une incertitudequant à la taille mémoire réellement occupée1.Nous présentons l’architecture logicielle de contrôle du ro-bot. Puis, nous présentons les caractéristiques du systèmeIxTeT2 utilisé pour la planification et l’exécution du plan.Ensuite, nos travaux nous amènent à étendre les capacitésde notre système suivant deux axes : la prise en compte ex-plicite des incertitudes (pour l’instant restreinte au temps)et une stratégie de planification adaptée aux besoins del’autonomie du robot.Nous concluons avec des résultats d’exécution réelles et desimulation. Ces résultats sont importants, ils permettent devoir les limites du système ainsi que ses atouts.

2 Architecture de contrôle du robot2.1 Architecture LAAS

F. 1 – L’architecture LAAS sur Dala, un ATRV iRobot.

La figure 1 présente l’implémentation de l’architectureLAAS à bord du robot Dala, utilisé pour nos expérimen-tations.L’architecture LAAS [4] fournit un cadre et des outils pourl’intégration d’une architecture de contrôle à bord d’un ro-bot mobile autonome. Elle est composée de trois niveaux :

1Les algorithmes de compression utilisés produisent des taux de com-pression variables.

2Même si le nom IxTeT est utilisé depuis de nombreuses années, lesversions successives de ce système sont assez différentes. La dernière endate inclue un exécutif temporel et un planificateur temporel.

le niveau fonctionnel, le niveau contrôle d’exécution etle niveau décisionnel. Le niveau fonctionnel est réalisé àl’aide de modules générés avec GenoM qui encapsulent lesfonctions de perception et d’action du robot. Ces modulesdoivent répondre à des contraintes d’exécution en tempsréel.On trouve ensuite le contrôleur d’exécution appeléR2C [5]. Il compare l’état des modules et les requêtesémises par la partie décisionnelle, avec un modèle formeldes états autorisés ou interdits pour le robot. Il agit commeun filtre qui empêche alors toute requête conduisant à unétat interdit.Finalement, la partie décisionnelle comprend OpenPRS quiest un exécutif procédural et IxTeT. OpenPRS interagitavec l’utilisateur ainsi qu’avec le planificateur. Celui-ci estchargé de fournir un plan initial suivant un problème posépar l’utilisateur. Ensuite, les deux systèmes coopèrent àl’exécution du plan. IxTeT contrôle l’exécution du plan endémarrant les actions du plan et en les arrêtant, tout en pre-nant en compte le temps, les ressources et l’exécution réelledes actions (échec, dépassement de la durée ...). OpenPRSquant à lui affine les actions de haut niveau en requêtesexécutables par le niveau fonctionnel et en surveille le bondéroulement. Il peut également mettre en place des actionsde reprise d’erreur ou transmettre l’erreur au planificateur.

3 Le système IxTeT3.1 PlanificationIxTeT est un planificateur de tâches dans l’espace des planspartiels partiellement instanciés utilisant des liens causaux3

(POCL4).Dans le plan partiel, il ajoute de nouveaux opérateurs ainsique des liens causaux. Ces opérateurs utilisent des va-riables et des contraintes afin de représenter toutes les ins-tanciations possibles. Le résultat est un plan contenant unordre partiel sur des opérateurs partiellement instanciés. Leplan produit est également flexible temporellement. Lescontraintes sur les variables temporelles et atemporellessont gérées par deux CSP5 (voir ci-dessous la gestion duplan).

Définition 1 (Un plan partiel partiellement instancié)Soit P le plan partiel partiellement instancié, il est définicomme le 4-uplet (A,C, L, F), avec A l’ensemble des tâchespartiellement instanciées, C l’ensemble des contraintesportant sur les variables des actions de A, L l’ensembledes liens causaux du plan et F l’ensemble des défauts deP.

IxTeT représente le monde au moyen de variables d’état etde variables de ressources. Il planifie à l’aide d’opérateurs

3Un lien causal représente une protection de la valeur de la variabled’état durant le lien.

4POCL : Partial Order Causal Link5CSP : "Constraint Satisfaction Problem" ou Problème de Satisfaction

de Contraintes [6].

Page 3: Planification et exécution de plan pour la robotique autonome

hold(PTU_POS():FORWARD,(st,et));event(ROBOT_STATUS():(MOVING,STILL),et);hold(ROBOT_STATUS():MOVING,(st,et));event(ROBOT_STATUS():(STILL,MOVING),st);event(ROBOT_POS():(IDLE_POS,?endL),et);hold(ROBOT_POS():IDLE_POS,(st,et));event(ROBOT_POS():(?initL,IDLE_POS),st);?initL,?endL in LOCATIONS;

task MOVE(?initL,?endL)(st,et){variable ?duration;variable ?di,?du,?dist;

distance(?initL,?endL,?di);distance_uncertainty(?du);?dist = ?di * ?du;speed(?s);?dist = ?s * ?duration;contingent ?duration = et − st;

}latePreemptive

hold(ROBOT_STATUS():STILL,(end_heat, st));

task MOVE_PTU(?initL,?endL)(st,et){

?initL,?endL in PTU_POSITIONS;timepoint end_heat;

event(PTU_STATUS():(COLD, HEAT),st);hold(PTU_STATUS():HEAT,(st,end_heat));event(PTU_STATUS():(HEAT,MOVING),end_heat);hold(PTU_STATUS():MOVING,(end_heat,et));event(PTU_STATUS():(MOVING,COLD),et);

hold(PTU_INIT():TRUE,(st,et));

}latePreemptive

contingent (et − st) in [16,20];(end_heat − st) in [10,12];

hold(PTU_POS():?initL,(st,end_heat));event(PTU_POS():(?initL,PTU_POS_IDLE),end_heat);hold(PTU_POS():PTU_POS_IDLE,(end_heat,et));event(PTU_POS():(PTU_POS_IDLE,?endL),et);

F. 2 – Un exemple de tâches de déplacement, et d’orientation des caméras extrait du domaine "Explorateur".

que nous appellerons tâches (voir Fig.2) qui sont ajoutésautant de fois que nécessaires. Ces opérateurs sont partiel-lement spécifiés. IxTeT peut insérer dans le plan un opéra-teur de prise de vue en ne précisant pas quelle caméra serautilisée à l’exécution.La représentation des plans correspond à des chro-niques [7]. Plus précisément, IxTeT utilise une logiquetemporelle réifiée. Deux types de proposition temporellesont possibles sur les variables d’états : event et hold.Un "hold" représente le maintien d’une variable d’état àune valeur entre deux instants. Un "event" correspond àun changement de valeur instantané d’une variable d’étatà un instant donné. Pour les ressources, trois types deproposition sont possibles : consume, produce et use. Un"consume" correspond à la consommation d’une ressource,un "produce" à sa production et un "use" à son emprunt.

Gestion du plan. Les plans sont représentés par des va-riables d’états et de ressources qui permettent à tout ins-tant de connaître sans ambiguïté l’état du système. Cepen-dant, les tâches étant partiellement spécifiées, IxTeT doitgérer des variables temporelles et atemporelles ainsi queles contraintes sur ces variables.IxTeT utilise deux CSP afin de gérer les variables non com-plètement instanciées. Le premier est un STN 6, et repré-sente des contraintes entre variables temporelles. Elles sonttoutes de la forme : m ≤ (t2 − t1) ≤ M | m,M ∈ R, t1 et t2sont des variables temporelles et leurs domaines sont desintervalles [l, u] | l, u ∈ R.Le planificateur utilise deux types de propagation sur ceréseau. D’abord, le réseau minimal7 est calculé par un al-gorithme de chemin consistance. Ensuite, le système uti-lise un algorithme en O(n2) pour l’ajout incrémental decontraintes basé sur l’algorithme de Mackworth PC-2 [9].Le second contient des variables dont les domaines sontsoient symboliques finis ou à complémentaires finis, soientdes domaines numériques réels quelconques. Nous pou-vons définir en particulier des contraintes d’unification,de somme, etc. Nous pouvons également utiliser descontraintes mixtes entre les deux CSP [10]. Ceci permetnotamment de lier les effets d’une tâche à sa durée8.

6STN : Simple Temporal Network [8].7Toutes les valeurs des domaines des variables et des contraintes ne

pouvant pas faire partie d’une solution ont été retirées. Dans le cas d’unSTN, la consistance d’arc est complète et la consistance de chemin calculeen plus le réseau minimal.

8Dans le domaine "Explorateur", une estimation de la distance àparcourir est obtenue à l’aide d’une distance de Manhatan. Un cal-

}earlyPreemptive

...(t_end−t_start) in ]330,500];

(t_end − t_goal1) in [2,4];hold(AT_ROBOT_Y():0−0.5,(t_goal1,t_end)) goal(3,0);hold(AT_ROBOT_X():0.5,(t_goal1,t_end)) goal(3,0);...hold(PICTURE(OBJ1, 0.5, 0 − 0.5) : DONE, (t_goal5s, t_goal5e)) goal(1,0);hold(COMMUNICATION(W1):DONE,(t_goal3s, t_goal3e)) goal(2, 0);...

contingent event(VISIBILITY_WINDOW(W1):(IN,OUT),t_evisi1);contingent event(VISIBILITY_WINDOW(W1):(OUT,IN),t_svisi1);contingent event(VISIBILITY_WINDOW(W1):(IN,OUT),t_start);explained event(MVT_GENERATION_INITIALIZED():(F,T),t_start);explained event(PTU_STATUS():(MOVING,COLD),t_start);explained event(ROBOT_STATUS():(MOVING,STILL),t_start);

task INIT()(t_start,t_end){

(t_svisi1 − t_start) in [150, 151];(t_evisi1 − t_svisi1) in [30, 31];...

F. 3 – Un exemple de plan initial extrait du domaine "Ex-plorateur".

Contrôle de la recherche. Deux algorithmes de re-cherche sont disponibles. Le premier est un Aε . Le se-cond effectue une recherche en profondeur d’abord. La re-cherche s’effectue sur un plan partiel courant. Elle se pro-longe tant que le plan courant contient des défauts et tantqu’une solution est possible.Le plan initial (Fig.3) décrit la situation initiale ainsi queles buts de la planification. Celui-ci peut contenir égale-ment l’évolution connue d’attributs contingents tels quedes fenêtres de visibilité ou des changements de la capa-cité d’une ressource.IxTeT utilise une hiérarchie d’abstraction [11] pour mieuxguider la recherche. Cette hiérarchie est dynamique et estadaptée en ligne lors de la planification. IxTeT génère horsligne, à partir d’une description syntaxique des modèles detâches et de la définition d’effets principaux justifiant l’in-sertion d’une tâche, un ensemble minimal de contraintesgarantissant la propriété de monotonicité ordonnée. Ellecontraint l’ordre de résolution des défauts dans le plan.Un plan partiel est considéré comme un plan solution lors-qu’il ne contient plus de défaut. Dans IxTeT, un défaut peutêtre soit une proposition temporelle non expliquée par unlien causal, soit un conflit potentiel entre deux propositionstemporelles du plan, soit un conflit possible concernant lacapacité d’une ressource.A chaque étape de la planification, une analyse des défautscontenus dans le plan partiel est effectuée et pour chacund’eux, toutes les résolvantes possibles sont calculées. On

cul du temps de parcours est alors effectué à l’aide de la contrainte?duration∗?speed =?distance en ayant pour la variable ?speed le domaineconvexe des vitesses les plus probables.

Page 4: Planification et exécution de plan pour la robotique autonome

choisit ensuite un défaut à l’aide d’une heuristique (voirci-dessous), puis sa résolvante. Après son insertion dans leplan partiel, si le plan est toujours consistant, la planifica-tion continue. Si le plan est inconsistant, ou qu’un défaut nepossède pas de résolvantes, on procède à un retour arrièreimmédiat.

Faisabilité et satisfiabilité. À chaque type de défautscorrespond certains types de résolvantes. Pour un sous-but,on peut soit établir un lien causal avec un établisseur in-terne au plan, soit rajouter une tâche. Pour un conflit poten-tiel entre deux propositions temporelles sur des variablesd’états, on peut les séparer temporellement ou unifier leursvaleurs ou séparer au moins un paramètre si la variabled’état est paramétrée.Pour un conflit de ressources, il s’agit d’une surconsom-mation potentielle sur un intervalle de temps. L’ensembledes résolvantes comprend : l’ajout d’une tâche productrice,la séparation d’une proposition paramétrée par rapport à lanature du conflit, la séparation temporelle et une résolvantelimitant la quantité consommée par un ensemble de propo-sitions de quantité variable de la forme

∑ni=0 qi ≤ qmax.

Une recherche heuristique. IxTeT utilise une stratégieopportuniste et de moindre engagement. L’idée est de limi-ter le nombre de retour arrière au cours de la recherche encontraignant le moins le plan, ainsi que la taille de l’espacede recherche en limitant le facteur de branchement. Pourcela, on choisit les défauts ayant le moins de résolvantespossibles et parmi celles-ci, la moins contraignante.Planifier avec IxTeT consiste à sur-contraindre le plan enrésolvant des défauts, ce qui réduit le nombre de solutionsatteignables à partir du plan partiel courant. Ainsi résoudreun défaut entraînera l’invalidation de résolvantes possiblessur les autres. On aura alors une réduction du facteur debranchement global.La recherche heuristique est réalisée en calculant un coûtd’engagement pour chaque résolvante (ou contrainte). Ilcorrespond au pourcentage de solutions atteignables à par-tir du plan partiel courant, qui vont être retirées par cetterésolvante. En réalité, seule une estimation est utilisée. En-suite, pour chaque défaut φ une opportunité de résolutionest calculée à l’aide d’un facteur K (les détails de ces cal-culs sont dans [12]).

Définition 2 (Coût de l’insertion d’une résolvante) SoitP un plan partiel quelconque. Soit µ(P) le nombre de planssolutions complètement instanciées atteignables par unerecherche utilisant P comme plan initial.Soit r une résolvante du plan partiel P. Soit coût(P, r) lecoût de l’insertion de r dans P.

coût(P, r) = 1 −µ(P ⊕ r)µ(P)

En utilisant plusieurs simplifications et hypothèses(voir [12]), le coût d’insertion d’une résolvante complexeest :

coût(P, r) =n∑

i=0

(coût(P, ri))

Définition 3 (Coût d’une contrainte de précédence)Soient t1 et t2 deux instants du plan. Soit c(t1, t2) l’inter-valle de contrainte entre t1 et t2. Soit d(c) la durée de lacontrainte c.

coût(t1 < t2) =d(c(t1, t2) ∩ ] −∞, 0] )

d(c(t1, t2))

Définition 4 (Coût d’un lien causal) Un lien causal l =ai(v1, ..., vn)

p→ a j(w1, ...,wn) avec ai une proposition tem-

porelle à l’instant ti, a j une autre proposition temporelle àl’instant t j, correspond à trois contraintes :– Une contrainte de précédence entre ti et t j.– Une contrainte d’unification des variables v1, ..., vn, w1,

..., wn.– Une contrainte de durée du lien causal.Soient tdébut l’instant de début du plan et tfin l’instant de findu plan.

durée(l) =borneinf(c(tdébut, tfin))

borneinf(c(ti, t j))

coût(l) = coût(ti < t j) + coût(v1 = w1) + ...+ coût(vn = wn) + coût(durée(l))

3.2 ExécutionLe système IxTeT comprend depuis [12] un exécutiftemporel. Celui-ci démarre, interrompt et reçoit les bi-lans des tâches. Il est capable de réagir dans des si-tuations imprévues. Il fonctionne selon un cycle percep-tion/réparation/exécution. Le plan résultant de la planifica-tion ne contient que des estimations des valeurs incertainesmaintenues par les CSP. Par exemple, dans le domaine "Ex-plorateur", la taille mémoire de chaque image ainsi que ladurée de chaque déplacement sont partiellement connues.

Cycle d’exécution. L’exécutif temporel exécute le planinitial que lui a produit le planificateur. Pour cefaire, il fonctionne suivant un cycle classique “percep-tion/planification/action". La première phase consiste à in-tégrer les messages en provenance d’OpenPRS. Ils sont detrois types : le bilan de l’exécution d’une tâche, un nou-veau but, un changement dans le niveau d’une ressource.Le lecteur trouvera dans [12] une présentation de l’inté-gration des messages dans le plan en cours d’exécution. Laseconde phase effectue si besoin est une réparation du plan.Celle-ci est distribuée sur plusieurs cycles afin de conser-ver une réactivité aux événements pouvant survenir dansl’intervalle de temps nécessaire à la réparation de tous lesconflits du plan.La troisième exécute les instants contenus dans le plan.Dans le cas d’un instant de début d’une action, une com-mande est émise en direction de l’exécutif procédural. Pourla fin d’une tâche, si celle-ci est interruptible, un messageest également émis. Sinon, IxTeT doit attendre la fin decette tâche. Si elle dépasse sa durée maximale, le plan estalors partiellement invalidé et nécessite une réparation ouune replanification dans le cas où il n’est plus exécutable.

Page 5: Planification et exécution de plan pour la robotique autonome

L’exécutif s’active lorsqu’un message a été reçu, lorsqu’uninstant a besoin d’être exécuté ou lorsqu’une réparation deplan est en cours. L’utilisateur a la possibilité de régler ladurée maximale autorisée ts pour un cycle aussi appelée"timestep".

4 Incertitude sur la durée des actionsDe nombreuses tâches9 effectuées par un robot mobile enenvironnement initialement inconnu ou mal connu sontsoumises à de fortes incertitudes. Par exemple, lors d’undéplacement, le robot ne peut pas décider à priori de l’ins-tant de fin. Il doit uniquement observer le fait qu’il a atteintson objectif. De même, lors d’une communication, c’est àdire d’une réception d’un message provenant d’un tiers, lerobot ne connaît pas la durée exacte de cette communica-tion.Les modèles de tâches permettent d’exprimer cette incer-titude sur la durée en la modélisant comme de la flexibi-lité. Cependant, le formalisme STN suppose que toutes lesvariables sont contrôlables et recherche une affectation detoutes ces variables à une valeur précise. Dans notre cas,les algorithmes de propagation des contraintes peuvent ré-duire la durée possible d’une action, même si celle-ci n’estpas contrôlable.Ceci va conduire à des échecs du plan due à son exécution,sans que l’échec d’une action ou même qu’un dépassementtemporel soit en cause. Par exemple si un robot doit enchaî-ner des tâches contrôlables et des tâches non-contrôlables,les premières doivent voir leur durée réduite afin de pré-server les incertitudes sur la durée des autres. Par exemple,un télédéchargement contrôlable sera interrompu au boutde dix secondes si le déplacement non-contrôlable suivantdoit commencer au plus tard à cet instant.

4.1 DéfinitionDans [13], les auteurs introduisent un nouveau forma-lisme appelé STNU10. Ce formalisme ajoute la notion decontraintes contingentes ou contrôlables. La notion CSPclassique de consistance est remplacée par les notionsde contrôlabilité. Trois niveaux principaux sont rappelésdans [14] : faible, forte et dynamique. La contrôlabilitéfaible garantit que pour chaque instanciation complète detous les liens contingents, il existe une instanciation pos-sible de chacun des liens contrôlables. La contrôlabilitéforte garantit que la même valeur sera choisie pour cha-cun des liens contrôlables quelque soit la valeur exacte desliens contingents, permettant la génération hors ligne d’unepolitique d’exécution.La contrôlabilité dynamique, qui nous semble la plus pro-metteuse, consiste à ne prendre des décisions sur le STNUqu’en fonction des décisions et observations précédentes.Ainsi, elle est très intéressante dans le contexte de l’exé-cution du plan dans un environnement dynamique et incer-tain, puisqu’aucune décision ne nécessite de faire des hy-

9Dans cette section, les exemples sont tirés du domaine "Explorateur".10STNU : Simple Temporal Network with Uncertainties.

1. Calculer le STN minimal. S’il n’est pas pseudo-contrôlable retour-ner faux.

2. Sélectionner chaque triangle tel que AB est contingent et que v(fig. 5) n’est pas négatif. Introduire toutes les contraintes requisespar le cas "Précédent" et chaque "wait" requis par le cas "Non-ordonné".

3. Faire toutes les régressions possibles de "wait", tout en convertis-sant les "wait" inconditionnel en borne inférieure. Introduire égale-ment les bornes inférieures fournies par la réduction généralisée.

4. Si les étapes 2 et 3 n’ont pas produit de contraintes supplémentairesretourner vrai, sinon recommencer l’étape 1.

F. 4 – Algorithme 3DC+.

[x, y]

[u, v][p, q]

A B

C

<C, t>

[u, v][p, q]

A B

D

F. 5 – Deux exemples de réseaux. Celui de gauche illustreun triangle de contraintes, typiquement parcouru par l’al-gorithme 3DC+, comprenant le lien AB contingent. Celuide droite illustre la propagation ou régression des "wait",au travers d’un réseau ayant un lien AB contenant un "wait"causé par un lien contingent AC absent du schéma.

pothèses sur l’avenir. Elle est également moins restrictiveque la contrôlabilité forte. De plus, vérifier qu’un STNUest dynamiquement contrôlable en calculant le réseau mi-nimal (i.e. en retirant toutes les valeurs ne pouvant pas êtredans une solution), peut s’effectuer à l’aide de l’algorithme3DC+ en temps polynomial [14].

4.2 Algorithme 3DC+Cet algorithme est basé sur des modifications locales detous les triangles de contraintes en contenant au moins unequi soit contingente et sur la propagation d’un nouveautype de contrainte ternaire appelé "Wait". Le réseau mi-nimal est obtenu, sinon l’échec est détecté.Nous faisons un bref rappel pour le lecteur. Fig.4 pré-sente l’algorithme général. L’algorithme effectue plusieurscycles au cours desquels chaque triangle comportant unlien contingent est examiné. De nouvelles contraintes né-cessaires sont ajoutées dans certains triangles. L’algo-rithme s’arrête lorsqu’aucune nouvelle contrainte n’estajoutée.Un nouveau type de contrainte a été introduit, appelé“wait" et noté < d, i >. Il permet à l’exécutif d’attendre unedurée connue d avant de pouvoir exécuter un instant sansrisque de réduire la contrainte sur i. Il permet égalementd’exécuter un instant plus tôt si l’instant i a été observé.A la fin de chaque cycle, le STNU est complètement pro-pagé comme si c’était un STN. A l’issu de cette étape, siaucune durée non contrôlable n’a été réduite, le STNU estpseudo-contrôlable.Nous avons effectué deux améliorations. La premièreconsiste à maintenir le STNU toujours propagé au lieu de

Page 6: Planification et exécution de plan pour la robotique autonome

le faire à la fin de chaque cycle. Ceci permet d’utiliserl’algorithme en O(n2) au lieu de O(n3). Nous avons doncune borne maximale égale à O(n2c) avec c le nombre decontraintes non contrôlables. Expérimentalement, la com-plexité est plutôt de O(n2) pour les propagations.La seconde amélioration a été motivé par le soucis d’adap-ter 3DC+ au STNU dynamique d’IxTeT. Avant chaquenouvel ajout de contraintes, tous les “waits" sont retirés.Ceci n’est pas un problème, car si ils étaient nécessaires,3DC+ les rajoute qu’ils soient présents ou non. Si ilsn’étaient plus nécessaires, nous diminuons la durée d’uncycle de l’algorithme. Ce travail mériterait d’être complétéafin de retirer plus précisément ce qui doit l’être.

5 Modification de l’heuristiqueInitialement IxTeT avait été conçu comme un système deplanification suivant une stratégie de moindre engagement.Les extensions pour en faire un système de replanificationdynamique et de réparation de plan sont plus récentes. Ilen va de même pour la prise en compte des incertitudes dedurées des tâches. Ces modifications justifient de repenserles heuristiques utilisées par le planificateur.

5.1 Motivation et implémentationDans le contexte de la robotique d’exploration, nous évo-luons dans un environnement très incertain. Les tâchespeuvent échouer ou leur durée ne pas correspondre auxmodèles utilisés en planification. Ceci va nous amener àremettre au moins partiellement en cause le plan initiale-ment produit. De plus notre système est capable de prendreen compte, au cours de l’exécution, de nouveaux buts. Pources raisons, les plans produits ont une durée maximale su-périeure à la durée optimale (théorique) du plan, afin depouvoir s’adapter aux différents événements.Cependant, la stratégie de moindre engagement va placerles actions temporellement flexibles de la manière la moinscontrainte du point de vue de l’heuristique. Intuitivement,une action sera ordonnée de manière la plus flexible pos-sible par rapport aux événements contingents tels que desfenêtres de visibilité. Ceci va amener le robot à agir peu età échouer tardivement dans l’exécution du plan, ce qui luilaissera peu de temps pour planifier et exécuter un nouveauplan. Au final, des buts atteignables ne l’aurons pas été. Deplus, si de nouveaux buts sont envoyés à IxTeT, nous sou-haitons que le plus grand nombre de ses buts actuels soientdéjà satisfaits.Nous avons donc modifié le calcul de l’heuristique afind’obtenir des plans plus contraints temporellement. Cepen-dant, nous devons garder à l’esprit que les possibilités deréparation d’IxTeT dépendent directement de la flexibilitétemporelle du plan. Pour cela, les nouveaux calculs doiventprendre en compte les deux objectifs.Pour atteindre nos objectifs, les calculs de l’heuristique demoindre engagement liés aux contraintes temporelles ontbesoin d’être modifiés y compris ceux liés aux liens cau-saux.

Définition 5 (Coût d’une contrainte de précédence)Soient t1 et t2 deux instants du plan. Soit c(t1, t2) l’inter-valle de contrainte entre t1 et t2. Soit d(c) la durée de lacontrainte c. Soit tdébut l’instant de début du plan et tfin

l’instant de fin du plan. Soit coûtflexible(t1 < t2) l’anciennemesure du coût. Le coût est calculé en fonction de l’effetsur l’instant t111.

coûtprovisoire(t1 < t2) =

bornesup(c(tdébut ,t2))bornesup(c(tdébut ,tfin)) si bornesup(c(tdébut, t1))

> bornesup(c(tdébut, t2)),

bornesup(c(tdébut ,t1))bornesup(c(tdébut ,tfin)) sinon.

Finalement

coût(t1 < t2) =

coûtprovisoire(t1 < t2) si coûtflexible(t1 < t2) < seuil,coûtflexible(t1 < t2) sinon.

Le seuil peut être choisi de manière à privilégier plus oumoins de flexibilité temporelle restante dans le plan solu-tion. Des tests ont été faits et montrent la pertinence decette approche pour la préservation de réserves de flexibi-lité.

Définition 6 (Coût d’un lien causal) Un lien causal l =ai(v1, ..., vn)

p→ a j(w1, ...,wn) avec ai une proposition tem-

porelle à l’instant ti, a j une autre proposition temporelle àl’instant t j correspond à trois contraintes. Une contraintede précédence entre ti et t j. Une contrainte d’unificationdes variables v1, ..., vn, w1, ..., wn. Une contrainte de duréedu lien causal. Soient tdébut l’instant de début du plan et tfin

l’instant de fin du plan.

La fonction de calcul de la durée à été modifiée par rapportà la version précédente.

durée(l) =bornesup(c(tdébut, tfin))

bornesup(c(ti, t j))

coût(l) =

coût(v1 = w1) + ...+ coût(vn = wn) + coût(durée(l)) si coût(ti < t j)

< seuil,

coût(ti < t j) + coût(v1 = w1)+ ... + coût(vn = wn)+ coût(durée(l)) sinon.

11Des tests ont également été effectués en prenant en compte la borneau plus tôt de t2 au lieu de la borne au plus tard de t1. Ces tests ne montrentpas de différence suivant l’une ou l’autre des approches. Une explicationpeut venir du fait que le calcul de l’heuristique, prenant en compte leplacement dans le temps des actions, reflète dans les deux cas un moindrecoût pour un ordonnancement au plus tôt.

Page 7: Planification et exécution de plan pour la robotique autonome

6 Résultat en simulation et sur le ro-bot

6.1 SimulationNous avons utilisé un simulateur [15] capable de reproduirele même fonctionnement de la couche fonctionnelle que sielle était exécutée sur le robot. Grâce à ce simulateur noussommes capable de tester IxTeT à la fois sur le robot maisaussi de manière intensive en utilisant le simulateur.

6.2 ExpérimentationNous avons choisi d’expérimenter12 uniquement en utili-sant le domaine “explorateur". Nous avons défini quatremondes différents comportant aucun, trois, trois autres etsix obstacles. Le scénario consiste à effectuer trois prisesde vues, deux communications et à revenir au point de dé-part. Durant la première communication et si elle est réus-sie, deux nouveau buts sont ajoutés. Nous avons défini plu-sieurs emplacement des buts de manière aléatoire.Nous utilisons une machine avec un Pentium4 hyper-threadé à 3GHz et 1Go de mémoire vive.

6.3 RésultatSur la figure 6, le plan a été produit en utilisant unSTNU et la nouvelle heuristique. On voit que toutesles tâches ont été placées avant la seconde communica-tion. On voit également que l’intervalle pour démarrerune communication est plus court que l’intervalle de fin.Ceci est le résultat de 3DC+ qui a protégé la durée noncontrôlable de la communication. On peut également re-marquer le recouvrement partiel des tâches “MOVE" et“MOVE_PAN_TILT_UNIT". Par contre, la visualisationde ce plan ne montre pas la contrainte “wait" entre ces deuxdernières tâches.

Durée de la mission Nous avons observé deux phéno-mènes. En fonction des obstacles, et avec des buts sa-tisfaits égaux, la durée varie de 10% avec un STNU.La nouvelle heuristique produit des plans réellementplus courts, environ 25%. En réalité, certaines combi-naisons de buts peuvent la mettre en échec. Cepen-dant, l’objectif de minimisation de la durée est at-teint. Il pourrait être fait utilisation des travaux [16]cherchant à coupler un second planificateur spécialisépour gérer certaines parties critiques du plan commeles déplacements.Lors de l’exécution, avec un STNU, le gain par rap-port à l’autre heuristique chute à seulement 10%. Cephénomène vient des réparations liées aux nouveauxbuts ajoutés en cours de mission. En effet, la répara-tion produit des plans de mauvaises qualité compor-tant des tâches inutiles et redondantes. Dans nos tests,le robot doit effectuer des aller-retours entre plusieurspoints, entraînant un plan beaucoup plus long.

12Tous les logiciels et autres paramètres utilisés lors de notre travailest disponible sur simple demande aux auteurs, incluant l’architecture decontrôle du robot entier et la simulation.

Lors de l’utilisation de l’ancienne heuristique, leplanificateur ne peux pas trouver de plan en répa-rant et replanifie, produisant un plan de meilleurequalité. Ceci augmente la performance du coupleSTNU/ancienne heuristique.

Durée de la planification Il n’y a aucune influence sur letemps de planification en utilisant l’une ou l’autre desdeux heuristiques. Il est à noter que les problèmes po-sés sont toujours facile due aux nécessaires margessur la durée totale du plan. L’influence de 3DC+ estquand à elle significative lors de la planification avecde nombreux buts (> 5 prises de vues et deux com-munications par exemple).

La robustesse Les plans produits avec 3DC+ et quelquesoit l’heuristique sont statistiquement plus robustes.Cependant, il est à noter que lors de test sur le robot,il est arrivé que la mission soit accomplie de manièrecorrecte avec cette heuristique.Il est à noter également que lors d’autres tests sur lerobot, l’utilisation d’un STN soit pénalisante. En effet,lors de certaines missions, le robot est amené à réparerou replanifier de nombreuses fois. Lors de certainesmissions, il est possible que par manque de temps,certains buts doivent être abandonnés au profit de butsplus prioritaires.Nous avons observé que parfois, due aux réduc-tions abusives des durées des tâches, le planificateurconserve un but de faible priorité (prise de vue) enconjonction avec un but plus prioritaire (retour aupoint de départ). Or ce plan était inexécutable due auxréductions de durée des tâches trop importantes. Fi-nalement, le robot a été incapable de satisfaire le butprioritaire tandis que l’autre a été satisfait. Ce pro-blème devient presque impossible avec 3DC+.

Temps de calcul L’utilisation de 3DC+ rend l’exécutionde timepoint plus coûteuse dans la mesure ou la pro-pagation est plus coûteuse. En fait, ces différencesne sont pas réellement significative. En effet, avec unSTN la durée est d’environ 1ms et de 10ms avec unSTNU.

7 Conclusion et perspectivesEn conclusion, nous avons un système capable de produireun plan, de l’exécuter et de réagir à différents événementssurvenus durant l’exécution, y compris un échec. De plus,nous avons vu qu’il était possible de produire des plansrespectant les incertitudes sur les durées des tâches. Nousdonnons un exemple sur le domaine "Explorateur". L’in-tégration de ce système sur un robot réel nous a permisde montrer la validité de notre démarche en permettant lecontrôle effectif de la mission du robot.Plusieurs systèmes [3, 17] utilisent également la planifica-tion de tâches pour commander des "rover". Ces systèmesutilisent différentes approches de la planification de tâches.Le domaine qu’ils traitent ne possède pas de problèmes

Page 8: Planification et exécution de plan pour la robotique autonome

F. 6 – Plan initial typique durant nos expérimentations. Ce plan a été généré avec un STNU en utilisant la nouvelle heuris-tique.

types qui seraient connus de la communauté. Il est doncdifficile de les comparer, d’autant plus que les architecturessont différentes.Nous voudrions étendre la prise en compte explicite des in-certitudes à la gestion des ressources. En effet, nous avonslà une connaissance incertaine encore inexploitée. Nousvoudrions continuer à modifier la planification afin de tenircompte des spécificités de l’exécution dans la productiondes plans.Lors de notre étude sur le simulateur, il a été mis en évi-dence que la mauvaise qualité de certains plans réparés estpréjudiciable à la bonne exécution de la mission entière.Nous pensons qu’il est possible d’améliorer ce travail enrelaxant significativement les tâches dans le plan lors duretrait des liens causaux avant de réparer le plan. Il faudraitalors utiliser des algorithmes de propagation adaptés auxCSP dynamiques tels que ceux présentés dans [18].

Références[1] M. Ai-Chang, J. Bresina, L. Charest, A. Jónsson, J. Hsu,

B. Kanefsky, P. Maldague, P. Morris, K. Rajan, and J. Ygle-sias. Mapgen : Mixed initiative planning and scheduling forthe mars 03 mer mission. In Proceedings of iSAIRAS, 2003.

[2] Ari K. Jonsson, Conor McGann, Liam Pedersen, MichaelIatauro, and Srikanth Rajagopalan. Autonomy Software Ar-chitecture for LORAX. In i-SAIRAS-2005, 2005.

[3] S. Chien, D. Tran, G. Rabideau, B. Cichy, A. Davies,R. Sherwood, R. Castano, D. Mandl, S. Frye, B. Trout,J. D’Agostino, S. Shulman, and D. Boyer. The autono-mous sciencecraft on earth observing one. In i-SAIRAS-2005, 2005.

[4] R. Alami, R. Chatila, S. Fleury, M. Ghallab, and F. Ingrand.An architecture for autonomy. IJRR, 1998.

[5] F. Py and F. Ingrand. Dependable execution control for au-tonomous robots. In International Conference on IntelligentRobots and Systems, 2004.

[6] A. Mackworth. Consistency in networks of relations. Arti-ficial Intelligence, 8 :99–118, 1977.

[7] M. Ghallab, D. Nau, and P. Traverso. Automated Planning :Theory and Practice. Morgan Kaufmann, 2004.

[8] R. Dechter, I. Meiri, and J. Pearl. Temporal constraint net-works. Artificial Intelligence, 49 :61–95, 1991.

[9] A. K. Mackworth and E. C. Freuder. The Complexityof Some Polynomial Newtork Consistency Algorithms forConstraint Satisfaction Problems. Artificial Intelligence,25(1) :65–74, 1985.

[10] R. Trinquart and M. Ghallab. An extended functional repre-sentation in temporal planning : towards continuous change.In ECP, 2001.

[11] F. Garcia and P. Laborie. Hierarchisation of the seach spacein temporal planning. In EWSP-95, pages 235–249, 1995.

[12] S. Lemai. IxTeT-eXeC : planification, réparation de planet contrôle d’exécution avec gestion du temps et des res-sources. PhD thesis, LAAS-CNRS et Institut National Po-lytechnique de Toulouse, France, 2004.

[13] T. Vidal and H. Fargier. Handling contingency in temporalconstraint networks : from consistency to controllabilities.JETAI, 11(1) :23–45, 1999.

[14] P. Morris, N. Muscettola, and T. Vidal. Dynamic ControlOf Plans With Temporal Uncertainty. In IJCAI, pages 494–502, 2001.

[15] Sylvain Joyeux, Alexandre Lampe, Rachid Alami, and Si-mon Lacroix. Simulation in the LAAS Architecture. InICRA Workshop on Interoperable and Reusable Systems inRobotics, 2005.

[16] B. Lamare. Vers une coopération entre divers systèmes deplanification à bord d’un robot. PhD thesis, Université PaulSabatier, 1999.

[17] A. Finzi, F. Ingrand, and N. Muscettola. Model-based exe-cutive control through reactive planning for autonomous ro-vers. In IROS 2004 (IEEE/RSJ International Conference onIntelligent Robots and Systems), 2004.

[18] P. Surynek and S. Barták. A New Algorithm for MaintainingArc Consistency After Constraint Retraction. In Principlesand Practice of Constraint Programming, 2004.