• Aucun résultat trouvé

5.3 Extension du domaine de planification

5.3.1 Extension de la repr´esentation des ´etats du monde

Comme nous l’avons vu pr´ec´edemment, le formalisme s’appuie sur la notion d’entit´es et d’attributs qui d´ecrivent tous les objets et concepts existants dans le monde. Il paraˆıt ´evident que cette description est incompl`ete, puisqu’elle ne d´ecrit qu’une partie symbolique du monde et omet la repr´esentation g´eom´etrique de celui-ci. Pour pallier `a l’incompl´etude du mod`ele, nous associons au mod`ele symbolique de chaque entit´e son mod`ele g´eom´etrique correspondant. En =<

Ensymb/Engeom >. La partie symbolique Ensymb est la mˆeme que celle d´efinie pr´ec´edemment dans le chapitre 3, chaque entit´e est d´efinie par un ensemble d’attributs qui d´ecrivent son ´etat. La partie g´eom´etrique Engeom d´ecrit l’entit´e en termes de degr´es de libert´e de cin´ematique, de position, etc... Cette repr´esentation est int´egr´ee aux entit´es en ajoutant un nouveau type d’attributs. La figure 5.3 illustre un exemple de d´eclaration d’une base de faits. Si nous consid´erons la d´eclaration des attributs d’un agent, nous retrouvons les d´eclarations classiques des attributs symboliques et en plus de ces d´eclarations, nous trouvons la d´efinition de l’attribut g´eom´etrique “AgentModel ” qui fait la liaison entre la partie symbolique et la partie g´eom´etrique. Nous avons donn´e un type aux attributs g´eom´etriques. Ils peuvent ˆetre soit du type P3d Rob soit du type P3d Obj. Cette distinction va nous permettre de cr´eer deux classes d’entit´es, les entit´es dynamiques qui auront le type P3d Rob et les entit´es statiques qui auront le type P3d Obj. Nous d´efinissons une entit´e statique comme toute entit´e qui a une position et une configuration fixe, par opposition `a une entit´e dynamique qui a une position ou une configuration variable. Cette distinction est n´ecessaire au planificateur g´eom´etrique pour ses traitements internes.

Dans l’exemple de la figure 5.3, en observant la d´eclaration de l’entit´e type “Place”, nous constatons que son attribut g´eom´etrique est du type statique P3d Obj, ce qui est logique puisqu’un lieu n’est pas d´epla¸cable. Si nous consid´erons les d´eclarations des entit´es de type “Agent” ou “Object”, nous remarquons que leurs attributs g´eom´etriques sont du type P3d Rob, puisque les deux (“Agent” et “Object”) peuvent changer de position. Il faut bien garder `a l’esprit que les attributs g´eom´etriques ne sont pas utilis´es explicitement par la planification symbolique, mais sont n´ecessaires `a l’initialisation du planificateur g´eom´etrique.

Pour la description des faits symboliques, nous avons gard´e la mˆeme syntaxe que celle d´ecrite auparavant dans le chapitre 3. Elle se base sur les entit´es et leurs attributs comme illustr´e dans la figure 5.3.

Pour compl´eter la description des ´etats du monde, nous avons fait le choix d’inclure certains ´etats g´eom´etriques, qui vont nous permettre d’accroˆıtre les capacit´es de raisonnement et d’am´eliorer la qualit´e sociale des plans de notre planificateur. En effet, en contraignant certains de ces ´etats, cela nous permet d’exercer un contrˆole sur les solutions que le planificateur g´eom´etrique va produire et donc avoir un contrˆole sur la qualit´e des plans produits. Ce point sera abord´e dans les sections suivantes.

Ces faits g´eom´etriques appel´es aussi Relations g´eom´etriques ou Relations spatiales lient deux ou plusieurs entit´es par une certaine relation g´eom´etrique. Cette relation est d´efinie par des primitives g´eom´etriques telles que distance, angle, visibilit´e, etc... Pour ces faits g´eom´etriques, nous avons adopt´e la syntaxe name(Enj, Enk) qui se traduit par “Une relation spatiale qui a le nom de name et qui lie une paire d’entit´es distinctes Enj et Enk”. Cette repr´esentation est

factdatabase { // ´Etape 1 : D ´e f i n i t i o n d e s t y p e s d e s e n t i t ´e s d efin e entityType P l a c e ; d efin e entityType O b j e c t ; // ´Etape 2 : D ´e f i n i t i o n d e s a t t r i b u t s

d efin e entityAttributes Agent {

s t a t i c atom symbol t y p e ;

dynamic atom P l a c e posTopo ;

dynamic s e t O b j e c t o b j e c t s ;

p3d Rob AgentModel ;

}

d efin e entityAttributes Objet

{

s t a t i c atom number p o i d s ;

dynamic atom Agent owner ;

p3d Obj ObjetModel ; } d efin e entityAttributes P l a c e { p3d Obj ObjetModel ; } // ´Etape 3 : D ´e f i n i t i o n d e s g e o m R e l a t i o n s d efin e GeomRelation { v i s i b l e ( Agent , {Agent OR O b j e c t } ) ; r e a c h a b l e ( Agent , O b j e c t ) ; R e l a t i o n a l D i s t a n c e ( Agent , Agent ) ; n e x t f o r g i v e ( Agent , Agent ) ; n e x t f o r t a l k ( Agent , Agent ) ; n e x t f o r l o o k ( Agent , {Agent OR O b j e c t } ) ; } // ´Etape 4 : C r´e a t i o n d e s e n t i t ´e s livingRoom = new P l a c e ; J i d o = new Agent; G l a s s = new Objet ; B o t t l e = new Objet ; // ´Etape 5 : I n i t i a l i s a t i o n d e s a t t r i b u t s J i d o . t y p e = ” Robot ” ; J i d o . posTopo = livingRoom ; J i d o . o b j e c t s <<= G l a s s ; J i d o . o b j e c t s <<= B o t t l e ;

J i d o . AgentModel = ”\home\ s a l i l i \P3D\ JidoModel . p3d ” ;

G l a s s . p o i d s = 100 ; G l a s s . owner = J i d o ;

G l a s s . ObjetModel = ”\home\ s a l i l i \P3D\ GlassModel . p3d ” ;

B o t t l e . p o i d s = 1000 ;

B o t t l e . ObjetModel = ”\home\ s a l i l i \P3D\ B o t t l e M o d e l . p3d ” ;

livingRoom . ObjetModel = ”\home\ s a l i l i \P3D\ l i v i n g M o d e l . p3d ” ; l o a d S c e n e ( ” \ home\ s a l i l i \P3D\ SceneModel . p3d ” ) .

}

asym´etrique : R1(Enj, Enk) 6= R1(Enk, Enj), car une relation qui est v´erifi´ee dans un sens ne l’est pas forc´ement dans l’autre. Par exemple, la relation visible qui lie deux agents A1 et A2. L’agent A2 peut ˆetre visible par l’agent A1, mais cela ne veut pas dire que l’agent A1 est visible par l’agent A2. Ces relations sont ´egalement bool´eennes, car elles ne servent qu’`a affirmer ou infirmer la validit´e d’une relation entre deux entit´es.

Pour illustrer le sens d’une relation spatiale et r´epondre `a la question comment se fait la liaison entre le niveau symbolique et le niveau g´eom´etrique pour une relation, prenons l’exemple d’une relation que nous allons appeler “Relational Distance”. Cette relation va lier deux entit´es de type agent, comme elle a ´et´e d´efinie dans l’exemple de la figure 5.3. Au niveau symbolique, cette relation va r´epondre `a la question “est-ce qu’un des deux agents a viol´e l’espace vital1 de l’autre ?”.

Au niveau g´eom´etrique, cette relation repr´esente une primitive ou une fonction qui teste la distance entre deux agents et la compare `a une certaine valeur (p(x1 − x2)2+ (y1 − y2)2 > valeur). Si la distance calcul´ee est inf´erieure `a la valeur de r´ef´erence, la relation spatiale prendra la valeur “vraie”, c’est-`a-dire que l’espace vital entre les deux agents est viol´e. Sinon elle prendra la valeur “faux ”. Le nom de la relation spatiale fait la liaison entre sa repr´esentation symbolique et sa repr´esentation g´eom´etrique.

Comme nous l’avons not´e pr´ec´edemment, les relations g´eom´etriques sont repr´esent´ees de fa¸con symbolique dans le planificateur de tˆache. Ce dernier n’a aucune influence sur la qualit´e de ces relations en termes de diversit´e et richesse. La diversit´e et la richesse de celles-ci d´ependent exclusivement des capacit´es du planificateur g´eom´etrique `a fournir des primitives de haut niveau, et ´egalement de la possibilit´e de faire des compositions entre primitives de base.

Nous avons fait le choix de diff´erencier la syntaxe des faits symboliques et des faits g´eom´etriques pour deux raisons : (1) pouvoir garantir la g´en´ericit´e de la repr´esentation des ´etats du monde, puisque la d´eclaration et l’utilisation des faits g´eom´etriques restent optionnelles dans tout le syst`eme. (2) pouvoir faciliter la gestion des backtracks que nous d´etaillerons `a la section 5.4.3.

En examinant l’exemple de la figure 5.3, nous pouvons constater que la cr´eation et l’initialisation de la base de faits se fait en cinq ´etapes :

– La premi`ere ´etape est la d´efinition des types d’entit´es. Seule l’entit´e de type “Agent” est pr´ed´efinie par le syst`eme.

– La deuxi`eme est la d´efinition des attributs avec leurs types. C’est `a ce niveau que la liaison entre une entit´e et sa repr´esentation g´eom´etrique est faite, mais cela reste optionnel car nous pouvons avoir des entit´es qui n’ont aucune existence physique. Par exemple, nous pouvons

1. Un espace vital est une distance entre deux individus qui est nomm´ee distance relationnelle. Cette derni`ere varie en fonction du degr´e d’affectivit´e liant les individus.

cr´eer l’entit´e association qui regroupe des individus d’un certain type.

– La troisi`eme est la cr´eation des relations spatiales avec leur type. On peut voir sur l’exemple qu’une relation peut regrouper plusieurs types. Par exemple, la relation “visible(Agent, Agent OR Object)” qui d´efinit la notion de visibilit´e, cette relation peut lier un agent `a un autre agent ou bien un agent `a un objet.

– La quatri`eme ´etape est la cr´eation des entit´es. Le syst`eme va automatiquement cr´eer l’instance de l’entit´e d´eclar´ee et lui associer les attributs correspondants.

– La cinqui`eme ´etape est l’initialisation des attributs. Dans cette ´etape, les attributs symboliques sont initialis´es comme nous l’avons d´ecrit pr´ec´edemment au chapitre 3. Pour les attributs g´eom´etriques, l’initialisation se fait par la lecture d’un fichier. Au niveau symbolique, nous ne gardons que l’adresse du fichier pour l’utiliser lors de l’initialisation du planificateur g´eom´etrique. La repr´esentation du monde n’est pas compl`ete, il manque certains d´etails qui sont cruciaux pour le niveau g´eom´etrique. Par exemple, pour la d´efinition d’une chambre au niveau symbolique, nous n’allons pas nous int´eresser aux murs, mais au niveau g´eom´etrique ceux-ci sont tr`es importants, puisqu’ils permettent de g´en´erer des d´eplacements en ´evitant les collisions. Pour cela, nous avons rajout´e la commande loadScene qui charge dans le syst`eme l’adresse d’un fichier qui contient la description de l’environnement 3D. Pour les relations spatiales, le syst`eme calcul dynamiquement toutes les combinaisons possibles des relations en se basant sur les relations d´eclar´ees, les types qu’elles font intervenir et les entit´es d´eclar´ees ; l’instanciation de ces relations va ˆetre faite par le niveau g´eom´etrique.