Paradigme Réactif Capt. Vincent Roberge. Aperçue Paradigme Réactif Paradigme Réactif...

Preview:

Citation preview

Paradigme Réactif

Capt. Vincent Roberge

Aperçue

Paradigme Réactif

Architecture Réactive ‘Subsumption’

Exemple

Implémentation 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

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

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

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

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

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.

Prochain Point

Paradigme Réactif

Architecture Réactive

‘Subsumption’

Exemple

Implémentation 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

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.

:

Prochain Point

Paradigme Réactif

Architecture Réactive ‘Subsumption’

Exemple

Implémentation 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.

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é)

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

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

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

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.

Exemple 2: Section 9.3 du livre Mobile Robots

Prochain Point

Paradigme Réactif

Architecture Réactive ‘Subsumption’

Exemple

Implémentation 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

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

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{}).

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

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

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”

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

En bref

Paradigme Réactif

Architecture Réactive Subsumption

Exemple

Implémentation Réactive

SubsumptionQuestions?

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

Recommended