Le noyau est un processus temps-réel
multithread qui exécute les tâches suivantes:
-
Estimation de déplacement (dont l'odométrie),
-
Cartographie locale, i.e. cartographie de
l'environnement autour du robot. Cette carte est nécessaire
pour une navigation référencée capteur
robuste et avancée.
-
Cartographie globale: c'est la cartographie de toute
la zone dans laquelle le robot évolue. MBSnavigation peut
utiliser une carte initiale ou construire la carte automatiquement
(SLAM: Simultaneous Localization And
Mapping). La carte est mise à jour automatiquement quand la
zone est modifiée (apparition / disparition d'obstacle).
-
Evitement d'obstacle:cette tâche assure
l'évitement réactif à partir des
données capteurs et l'évitement
prédictif à partir de la carte locale.
-
Contrôleur
d'exécution:chargé de l'exécution de
la mission, activation/désactivation des primitives de
mouvement et d'action en fonction de l'état du robot et des
données de cartographie.
-
Supervision: gestion de l'interface utilisateur et
supervision globale du système.
Il y a quatre types de modules:
-
Les modules
de gestion de capteur
font l'acquisition et le prétraitement des mesures.
MBSnavigation contient des modules pour de nombreux types de capteurs:
entrées tout ou rien et analogiques, capteurs inertiels,
télémètres, caméras,
etc.
-
Les modules d'interface utilisateur
informent l'utilisateur de l'état de la machine et de la
progression de la tâche; les modules d'entrée acquièrent
les choix de l'utilisateur. Les interfaces peuvent être aussi
simples que des boutons ou des voyants lumineux ou
évolués comme un écran LCD ou
un synthétiseur vocal.
-
Le planificateur de mission
est l'outil qui traduit une mission générique au niveau
utilisateur comme "tond ma pelouse" ou "nettoie mon bureau" en une
séquence d'actions. Le contrôleur d'exécution du
noyau se charge de l'exécution de cette séquence.
-
Les primitives de mouvement et d'action
sont des commandes en boucle fermée qui garantissent une
navigation robuste et sûre. Elles sont parfois appelées
comportements. Le robot n'effectue jamais de commande en boucle ouverte. C'est
le fait que MBSnavigation est capable d'exécuter des missions
à partir d'un ensemble de primitives de mouvement en boucle
fermée qui le rend efficace et sûr.
MBSnavigation contient de nombreuses primitives et est ouvert pour en
intégrer de nouvelles relatives à des actions
spécifiques.
|