29
Paradigme Réactif Capt. Vincent Roberge

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

Embed Size (px)

Citation preview

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

Paradigme Réactif

Capt. Vincent Roberge

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

Aperçue

Paradigme Réactif

Architecture Réactive ‘Subsumption’

Exemple

Implémentation Réactive

‘Subsumption’

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

Robot Primitives

Primitives robot

ENTRÉE SORTIE

CAPTER Donnée des capteurs

L’information tirée des données

PLANIFIER Info des données/ connaissance

Directive

AGIR Info des données/ Directive

Commandes d’actuation

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

Paradigme Réactif

réaction aux limites du Paradigme Hiérarchique

Introduit par Brooks (1987) Beaucoup utilisé entre 1988 – 1992 Depuis 1992, utilise surtout

paradigme hybride Deux facteurs causes de cette

technologie L’étude d’organisme simple (p.ex.

fourmis, abeilles…) Réduction coût des ordinateurs, et

capteur

Capter Agir

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

Connecte directement Capter à Agir N’utilise pas la primitive Planifier

Comportement est décrit par la relations capteur-actuateur

Plusieurs relationscapteur-actuateur peuventexistés.

Capter Agir

Primitives robot

ENTRÉE SORTIE

CAPTER Donnée des capteurs

L’information tirée des données

PLANIFIER Info des données/ connaissance

Directive

AGIR Info des données/ Directive

Commandes d’actuation

Paradigme Réactif

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

Paradigme Réactif Crée suite aux problèmes du

paradigme hiérarchique et d’après l’étude de comportement animaux.

Le paradigme hiérarchique était horizontal de nature

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

Paradigme Réactif

décomposition vertical

Débute avec comportement de survie Couche supérieur

peut Utilisé couche

inférieur Inhibé couche

inférieur Créer couche

parallèle exhibant nouveau comportement

Chaque couches ont un certain accès aux capteurs & actuateur

Prendre pomme verte

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

Paradigme Réactif Toute action est effectuée par des

comportements Comportements sont des relations

directs entre l’entrée des capteurs à un set de commande contrôlant l’action des moteurs Arkin, Brooks et Payton ont étudié les mécanismes pour gérer la situation de comportements multiples simultanément actifs.

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

Prochain Point

Paradigme Réactif

Architecture Réactive

‘Subsumption’

Exemple

Implémentation Réactive

‘Subsumption’

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

Architecture Réactif : Deux Approches

Quand des comportements multiples sont actifs simultanément, de nouveaux comportements peuvent émerger Subsumption : l’approche (orienté

matériel) de Brooks (MIT) pour faire des robots ressemblant aux insectes

Champ de potentiel :l’approche de Arkin et Payton applicable pour des implémentations logiciel

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

Architecture Subsumption Modules groupés en couche de

compétence. Couche inférieur : but-orienté (p.ex. prise

de la pomme) Couche supérieur : basic (fonctions de

survie). Couche supérieur peut subsumer

(override) l’inférieur Tâche complétée en activant la couche

appropriée, qui subsume les couches inférieures.

:

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

Prochain Point

Paradigme Réactif

Architecture Réactive ‘Subsumption’

Exemple

Implémentation Réactive

‘Subsumption’

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

Implémentation Subsumption : Exemple

Comportement d’un robot utilisant: un petit microcontrôleur un anneau de sonar

Démontre un objet proche du sonar 2 et 3.

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

Exemple: 1ère couche - Éviter

Première couche éviter la collision avec objets:

“Sonar” est un module SW qui détermine distances

“Motors” est un pilote SW qui contrôle les moteurs

“Avoid” est un comportement réflexe de fuite 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. Avancer jusqu’à un seuil de détection (objet

détecté)

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

Exemple: 2ème couche - Recharge

Recharge: retour du robot à une station de recharge lorsque le voltage des piles sont basses

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

D’autres couches peuvent être ajouté sans changer les couches inférieurs.

Battery Level

IR DetectorDock Motors

Sonar

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

Contention des comportements

Avoid et Dock peuvent vouloir contrôler les moteurs

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

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

Nœud de suppression

Nœud de suppression laisse passer message du nœud inférieur à moins qu’un nœud supérieur a un message à passer.

Fonction Dock subsume la fonction Avoid

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

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.

Les calculs/temps d’exécution resteront petit.

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

Exemple 2: Section 9.3 du livre Mobile Robots

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

Prochain Point

Paradigme Réactif

Architecture Réactive ‘Subsumption’

Exemple

Implémentation Réactive

‘Subsumption’

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

L’implémentation des comportements représente un défit important: Design - sans-fouillis et facilement

compréhensible; Structure - suit les règles d’art de

programmation Temps – s’assurer que les comportement

exécute à temps Chaque comportement est un

processus… Qui doit être exécuté simultanément

c.-à-d. multitâche Solution: Real-time processing (ou

Pseudo)

Implémentation - Défi

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

Multitâche

Multitâche requière un ordonnanceur (scheduler) real-time pour coordonner les processus idéalement l’ordonnanceur génèrera

une interruption des tâches pour laisser une tâche plus importante être exécutée.

Multitâche préemptif Nécessite un OS real-time

Nous n’utilisons pas d’OS real-time Notre solution est le multitâche

coopératif

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

Multitâche Coopératif (MC)

Les processus, au lieu du ordonnanceur, décide quand est-ce qu’il redonne contrôle à l’ordonnanceur .

En utilisant MC, il faut s’assurer qu’aucun processus ne monopolise le processeur. Éviter les boucles laborieuses…

exceptionnellement pour les tâches de grande priorité (main{}).

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

Multitâche Coopératif - Ordonnanceur

appelle chaque processus tour-à-tour Doit aussi utiliser une arbitration

pour résoudre le conflit entre deux comportements compétitifs

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

Arbitre

Tous les comportements ont une connections à certains actuateurs

L’arbitre s’occupe de faire la bonne connections en adressant les comportements conflictuels

suppression des nœuds se fait par l’ordre des lignes de codes des comportements

1. behave1 actuator12. behave2 actuator13. behave3 actuator1

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

Flag de sortie valide En utilisant un flag pour signifier

que la sortie d’un comportement est valide, on a l’engrenage ordonnanceur /arbitre qui peut fonctionner

p.ex. if ( behave1ValidFlag = = TRUE ) {

Connecter la sortie de behave1 à actuator1 }

if ( behave2ValidFlag = = TRUE ) { Connecter la sortie de behave2 à

actuator1 } etc.

L’ordre peut être inversé, et utiliser “else if”

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

Implémentation en bref

dans main(); Ordonnanceur appelle chaque

fonction/comportement set flag quand on a une sortie/donnée valide détermine la sortie des comportements

Appel la fonction arbitre

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

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

En bref

Paradigme Réactif

Architecture Réactive Subsumption

Exemple

Implémentation Réactive

SubsumptionQuestions?

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

Références

Images et contenus pris de: Introduction to AI Robotics, R. Murphy, 2000 Behavior-Based Robotics, R. Arkin, 1998 Mobile Robots, Jones; Sections 9.4, 9.5