Paradigme Réactif Capt. Vincent Roberge
Aperçue Paradigme Réactif Paradigme Réactif Architecture Réactive Subsumption Architecture Réactive Subsumption Exemple Exemple Implémentation Réactive Subsumption Implémentation Réactive Subsumption
Robot Primitives Primitives robot ENTRÉESORTIE CAPTER Donnée des capteurs Linformation tirée des données PLANIFIER Info des données/ connaissance Directive AGIR Info des données/ Directive Commandes dactuation
Paradigme Réactif réaction aux limites du Paradigme Hiérarchique réaction aux limites du Paradigme Hiérarchique Introduit par Brooks (1987) Introduit par Brooks (1987) Beaucoup utilisé entre 1988 – 1992 Beaucoup utilisé entre 1988 – 1992 Depuis 1992, utilise surtout paradigme hybride Depuis 1992, utilise surtout paradigme hybride Deux facteurs causes de cette technologie Deux facteurs causes de cette technologie Létude dorganisme simple (p.ex. fourmis, abeilles…) Létude dorganisme simple (p.ex. fourmis, abeilles…) Réduction coût des ordinateurs, et capteur Réduction coût des ordinateurs, et capteur Capter Agir
Connecte directement Capter à Agir Connecte directement Capter à Agir Nutilise pas la primitive Planifier Nutilise pas la primitive Planifier Comportement est décrit par la relations capteur- actuateur Comportement est décrit par la relations capteur- actuateur Plusieurs relations capteur-actuateur peuvent existés. Plusieurs relations capteur-actuateur peuvent existés. Capter Agir Primitives robot ENTRÉESORTIE CAPTER Donnée des capteurs Linformation tirée des données PLANIFIER Info des données/ connaissance Directive AGIR Info des données/ Directive Commandes dactuation Paradigme Réactif
Crée suite aux problèmes du paradigme hiérarchique et daprès létude de comportement animaux. Crée suite aux problèmes du paradigme hiérarchique et daprès létude de comportement animaux. Le paradigme hiérarchique était horizontal de nature Le paradigme hiérarchique était horizontal de nature
Paradigme Réactif décomposition vertical décomposition vertical Débute avec comportement de survie Débute avec comportement de survie Couche supérieur peut Couche supérieur peut Utilisé couche inférieur Utilisé couche inférieur Inhibé couche inférieur Inhibé couche inférieur Créer couche parallèle exhibant nouveau comportement Créer couche parallèle exhibant nouveau comportement Chaque couches ont un certain accès aux capteurs & actuateur Chaque couches ont un certain accès aux capteurs & actuateur Prendre pomme verte
Paradigme Réactif Toute action est effectuée par des comportements Toute action est effectuée par des comportements Comportements sont des relations directs entre lentrée des capteurs à un set de commande contrôlant laction des moteurs Comportements sont des relations directs entre lentrée des capteurs à un set de commande contrôlant laction des moteurs Arkin, Brooks et Payton ont étudié les mécanismes pour gérer la situation de comportements multiples simultanément actifs. Arkin, Brooks et Payton ont étudié les mécanismes pour gérer la situation de comportements multiples simultanément actifs.
Prochain Point Paradigme Réactif Paradigme Réactif Architecture Réactive Subsumption Architecture Réactive Subsumption Exemple Exemple Implémentation Réactive Subsumption Implémentation Réactive Subsumption
Architecture Réactif : Deux Approches Quand des comportements multiples sont actifs simultanément, de nouveaux comportements peuvent émerger Quand des comportements multiples sont actifs simultanément, de nouveaux comportements peuvent émerger Subsumption : lapproche (orienté matériel) de Brooks (MIT) pour faire des robots ressemblant aux insectes Subsumption : lapproche (orienté matériel) de Brooks (MIT) pour faire des robots ressemblant aux insectes Champ de potentiel :lapproche de Arkin et Payton applicable pour des implémentations logiciel Champ de potentiel :lapproche de Arkin et Payton applicable pour des implémentations logiciel
Architecture Subsumption Modules groupés en couche de compétence. Modules groupés en couche de compétence. Couche inférieur : but-orienté (p.ex. prise de la pomme) Couche inférieur : but-orienté (p.ex. prise de la pomme) Couche supérieur : basic (fonctions de survie). Couche supérieur : basic (fonctions de survie). Couche supérieur peut subsumer (override) linférieur Couche supérieur peut subsumer (override) linférieur Tâche complétée en activant la couche appropriée, qui subsume les couches inférieures. Tâche complétée en activant la couche appropriée, qui subsume les couches inférieures. :
Prochain Point Paradigme Réactif Paradigme Réactif Architecture Réactive Subsumption Architecture Réactive Subsumption Exemple Exemple Implémentation Réactive Subsumption Implémentation Réactive Subsumption
Implémentation Subsumption : Exemple Comportement dun robot utilisant: Comportement dun robot utilisant: un petit microcontrôleur un petit microcontrôleur un anneau de sonar un anneau de sonar Démontre un objet proche du sonar 2 et 3. Démontre un objet proche du sonar 2 et 3.
Exemple: 1 ère couche - Éviter Première couche éviter la collision avec objets: Sonar est un module SW qui détermine distancesSonar est un module SW qui détermine distances Motors est un pilote SW qui contrôle les moteursMotors est un pilote SW qui contrôle les moteurs Avoid est un comportement réflexe de fuiteAvoid est un comportement réflexe de fuite Si objet trop proche en avant du sonar: arrête déplacement. Si objet trop proche en avant du sonar: arrête déplacement. Tourne robot jusquà ce que la plus petite distance soit lue par le sonar de derrière. Tourne robot jusquà ce que la plus petite distance soit lue par le sonar de derrière. Avancer jusquà un seuil de détection (objet détecté) Avancer jusquà un seuil de détection (objet détecté)
Exemple: 2ème couche - Recharge Recharge: retour du robot à une station de recharge lorsque le voltage des piles sont basses Recharge: retour du robot à une station de recharge lorsque le voltage des piles sont basses station de recharge contiens une balise IR station de recharge contiens une balise IR Si Dock est activé, va envoyer des commandes aux moteurs pour aller se chargé tout en regardant pour des obstacle en route Si Dock est activé, va envoyer des commandes aux moteurs pour aller se chargé tout en regardant pour des obstacle en route Dautres couches peuvent être ajouté sans changer les couches inférieurs. Dautres couches peuvent être ajouté sans changer les couches inférieurs. Battery Level IR Detector Dock Motors Sonar
Contention des comportements Avoid et Dock peuvent vouloir contrôler les moteurs Avoid et Dock peuvent vouloir contrôler les moteurs Conflit résolu en utilisant un nœud de suppression S Conflit résolu en utilisant un nœud de suppression S Message passe à moins dêtre override par un signal valide des couches supérieurs Message passe à moins dêtre override par un signal valide des couches supérieurs
Nœud de suppression Nœud de suppression laisse passer message du nœud inférieur à moins quun nœud supérieur a un message à passer. Nœud de suppression laisse passer message du nœud inférieur à moins quun nœud supérieur a un message à passer. Fonction Dock subsume la fonction Avoid Fonction Dock subsume la fonction Avoid
Couches additionnelles Des couches additionnelles peuvent être ajoutées de façon à créer des comportements complexes et les couches de bases ne sont pas perdues. Des couches additionnelles peuvent être ajoutées de façon à créer des comportements complexes et les couches de bases ne sont pas perdues. Les calculs/temps dexécution resteront petit. Les calculs/temps dexécution resteront petit.
Exemple 2: Section 9.3 du livre Mobile Robots
Prochain Point Paradigme Réactif Paradigme Réactif Architecture Réactive Subsumption Architecture Réactive Subsumption Exemple Exemple Implémentation Réactive Subsumption Implémentation Réactive Subsumption
Limplémentation des comportements représente un défit important: Limplémentation des comportements représente un défit important: Design - sans-fouillis et facilement compréhensible; Design - sans-fouillis et facilement compréhensible; Structure - suit les règles dart de programmation Structure - suit les règles dart de programmation Temps – sassurer que les comportement exécute à temps Temps – sassurer que les comportement exécute à temps Chaque comportement est un processus… Chaque comportement est un processus… Qui doit être exécuté simultanément Qui doit être exécuté simultanément c.-à-d. multitâche c.-à-d. multitâche Solution: Real-time processing (ou Pseudo) Solution: Real-time processing (ou Pseudo) Implémentation - Défi
Multitâche Multitâche requière un ordonnanceur (scheduler) real-time pour coordonner les processus Multitâche requière un ordonnanceur (scheduler) real-time pour coordonner les processus idéalement lordonnanceur génèrera une interruption des tâches pour laisser une tâche plus importante être exécutée. idéalement lordonnanceur génèrera une interruption des tâches pour laisser une tâche plus importante être exécutée. Multitâche préemptif Multitâche préemptif Nécessite un OS real-time Nécessite un OS real-time Nous nutilisons pas dOS real-time Nous nutilisons pas dOS real-time Notre solution est le multitâche coopératif Notre solution est le multitâche coopératif
Multitâche Coopératif (MC) Les processus, au lieu du ordonnanceur, décide quand est-ce quil redonne contrôle à lordonnanceur. Les processus, au lieu du ordonnanceur, décide quand est-ce quil redonne contrôle à lordonnanceur. En utilisant MC, il faut sassurer quaucun processus ne monopolise le processeur. En utilisant MC, il faut sassurer quaucun processus ne monopolise le processeur. Éviter les boucles laborieuses… exceptionnellement pour les tâches de grande priorité (main{}). Éviter les boucles laborieuses… exceptionnellement pour les tâches de grande priorité (main{}).
Multitâche Coopératif - Ordonnanceur appelle chaque processus tour-à-tour appelle chaque processus tour-à-tour Doit aussi utiliser une arbitration pour résoudre le conflit entre deux comportements compétitifs Doit aussi utiliser une arbitration pour résoudre le conflit entre deux comportements compétitifs
Arbitre Tous les comportements ont une connections à certains actuateurs Tous les comportements ont une connections à certains actuateurs Larbitre soccupe de faire la bonne connections en adressant les comportements conflictuels Larbitre soccupe de faire la bonne connections en adressant les comportements conflictuels suppression des nœuds se fait par lordre des lignes de codes des comportements suppression des nœuds se fait par lordre des lignes de codes des comportements 1. behave1 actuator1 2. behave2 actuator1 3. behave3 actuator1
Flag de sortie valide En utilisant un flag pour signifier que la sortie dun comportement est valide, on a lengrenage ordonnanceur /arbitre qui peut fonctionner En utilisant un flag pour signifier que la sortie dun comportement est valide, on a lengrenage ordonnanceur /arbitre qui peut fonctionner p.ex. p.ex. if ( behave1ValidFlag = = TRUE ) { if ( behave1ValidFlag = = TRUE ) { Connecter la sortie de behave1 à actuator1 } Connecter la sortie de behave1 à actuator1 } if ( behave2ValidFlag = = TRUE ) { if ( behave2ValidFlag = = TRUE ) { Connecter la sortie de behave2 à actuator1 } Connecter la sortie de behave2 à actuator1 } etc. etc. Lordre peut être inversé, et utiliser else if Lordre peut être inversé, et utiliser else if
Implémentation en bref dans main(); dans main(); Ordonnanceur appelle chaque fonction/comportement Ordonnanceur appelle chaque fonction/comportement set flag quand on a une sortie/donnée valide set flag quand on a une sortie/donnée valide détermine la sortie des comportements détermine la sortie des comportements Appel la fonction arbitre Appel la fonction arbitre Chaque comportement devrait avoir son flag et sa variable de sortie en variable global (ou ptr) Chaque comportement devrait avoir son flag et sa variable de sortie en variable global (ou ptr) Arbitre doit utiliser les flags actifs pour choisir quelle sortie des comportements qui sera connectée aux actuateurs Arbitre doit utiliser les flags actifs pour choisir quelle sortie des comportements qui sera connectée aux actuateurs
En bref Paradigme Réactif Paradigme Réactif Architecture Réactive Subsumption Architecture Réactive Subsumption Exemple Exemple Implémentation Réactive Subsumption Implémentation Réactive Subsumption Questions?
Références Images et contenus pris de : Images et contenus pris de : Introduction to AI Robotics, R. Murphy, 2000 Introduction to AI Robotics, R. Murphy, 2000 Behavior-Based Robotics, R. Arkin, 1998 Behavior-Based Robotics, R. Arkin, 1998 Mobile Robots, Jones; Sections 9.4, 9.5 Mobile Robots, Jones; Sections 9.4, 9.5