Paradigme Réactif Capt. Vincent Roberge. Aperçue Paradigme Réactif Paradigme Réactif Architecture Réactive Subsumption Architecture Réactive Subsumption.

Slides:



Advertisements
Présentations similaires
Semaine 5 Couche Liaison de données Cours préparé par Marc Aubé
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
Module 5 : Implémentation de l'impression
Formation universitaire à .NET: Introduction à C#
1 Off road obstacle avoidance through end to end learning Yann LeCun, Urs Muller, Jan Ben, Eric Cosatto, Beat Flepp.
Détection des collisions dans un moteur 3D temps réel
Algorithmique et évaluation
Les Systèmes Multi Agents
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Types des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Ordonnancement partie I (Tanenbaum 2.5)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 243B Programmation informatique appliquée
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) III (Tanenbaum 2.3)
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
Vue d'ensemble Présentation multimédia : Rôle du routage dans l'infrastructure réseau Activation et configuration du service Routage et accès distant Configuration.
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
Comportements hybrides
Lego Mindstorm.
Formation PAF L’AUTOMATISME EN COLLEGE E.FONTENIAUD.
Automatisme Les Systèmes automatisés I - Introduction => Les Systèmes Automatisés Simples ou complexes, les systèmes automatisés sont partout dans notre.
Arduino en technologie
GEF 447B Aperçue du cours ROBOTIQUE.
GEF 447B Bring sample sensors Comportement Capt. Vincent Roberge.
Comportement Réactif - Champs de potentiel
Cours #8 Flot de conception d’un circuit numérique
Comportement Hiérarchique
28 novembre 2012 Grégory Petit
IFT 6800 Atelier en Technologies d’information
Module 2 : Préparation de l'analyse des performances du serveur
Module 3 : Analyse des performances du serveur
Comportement hybride Architectures Capt. Vincent Roberge.
Le diagramme de séquences
Programmation non procédurale Le projet ECOLE 2000
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Environnement Numérique d’Apprentissage
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Arbitrer c’est: Le code de jeu Les violations Règlement du ballon hors jeu Les appuis Règle du dribble Les règles des secondes Le retour en zone.
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
Mesure de la structure du système GEF492A 2014 Référence: [HvV §12.1.5] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Résoudre un problème au cycle 1
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
1 Registration Physique Séminaire du Master Davide Bazzi Université de Fribourg
La programmation système
La Villette Squeak, Logiciel de Robotique / programmation La Villette Nous sommes tout d’abord arrivés sur une activité. On avait l’impression de se trouver.
Université de Cergy-Pontoise, 7 juin 2006 Aibo Compagnon.
TP 2 : Détection d’obstacles grâce aux ultrasons Florent Pellerin François Parsy
La situation-problème
Initiation au JavaScript
Arduino en technologie
Rozenn Gotteland Mathieu Krieg Nicolas Trubert
Sujet 5 : Intégration d’une loi d’ordonnancement dans un modèle
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
PSTE | Asservissement de moteurs à courant continu
IFT209 – Programmation Système
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Subversion.
CSI2510 Structures de données et algorithmes Analyse des algorithmes
Programmation créative Semaine 03. Agenda de leçon  Rotation d’un sprite  Modifier la couleur d’un sprite.
Technologie - Cycle 4 Exemple de progressivité
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

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