5.2 Chaise roulante automatis´ee : le syst`eme
5.2.2 Architecture logicielle
L’architecture logicielle utilis´ee pour la navigation autonome de la chaise
roulante est illustr´ee par la Fig. 5.3. Elle comprend quatre composants
principaux :
– Au plus pr`es du syst`eme robotique se trouve unserveur des donn´ees
capteurs et actionneurs nomm´eWuweiProxy destin´e `a collecter les
informations fournies par les capteurs de la chaise roulante et `a envoyer
les commandes `a ses actionneurs. Ce processus, ex´ecut´e en boucle,
utilise des appels de proc´edure `a distance via le protocole d’´echange
TCP afin de r´ecup´erer `a chaque instant les scans lasers fournis par le
capteur SICK, ainsi que l’odom´etrie du robot. De mˆeme, la commande
est envoy´ee directement par WuweiProxy au moteur contrˆolant les
roues de la chaise. Si la chaise ne re¸coit aucune commande pendant
une dur´ee de une seconde, la connexion est suppos´ee perdue, et le
syst`eme est directement arrˆet´e afin d’´eviter toutes collisions.
– Afin de partager les informations collect´ees par le robot, un
mid-dleware d’´echange d’informations nomm´e Hugr est directement
connect´e au serveur d’entr´ees/sorties. Cet outil a ´et´e d´evelopp´e au
sein de l’INRIA Rhˆone-Alpes. Il consiste en une m´emoire partag´ee
stockant et distribuant les donn´ees utilis´ees par les diff´erents processus
n´ecessaires `a la navigation (planificateur, contrˆoleur, cartographie,
suivi des obstacles mobiles, etc). Chacun de ces processus est alors
134 5.2. CHAISE ROULANTE AUTOMATIS ´EE : LE SYST `EME
MPC
(Motion Planning and Control)
Module décisionnel
- Planification de mouvement
- Déformation de trajectoire (Teddy)
- Suivi et exécution du mouvement
Hugr
Middleware d'échange d'informations
- Stockage et partage des ressources
utilisées par les différents processus
- Distribution et synchronisation des
données entre machines interconnectées
CycabTK
Simulateur robotique 3D
- Simule le déplacement du robot
à partir d'un contrôle d'entrée
- Simule les données capteurs
perçues au cours de la navigation
WuweiProxy
Serveur de la chaise roulante
- Demande en boucle des scans laser
et odométrie de la chaise roulante
- Transmission en boucle de la
commande à la chaise roulante
Robot
Chaise roulante automatisée
MPC-ifc
Interface graphique utilisateur
- Visualisation de l'environnement
- Choix d'une destination
- Démarrage / arrêt de l'exécution du
mouvement
Destination
Plan calculé
Démarrage / arrêt
de la navigation
Commande
Localisation du robot
Position des obstacles statiques
Position et vitesse des obstacles mobiles
DaTMO
Détection et suivi des
obstacles mobiles
- Segmentation (clustering) des obstacles
- Identification des obs. statiques/mobiles
- Calcul de la vitesse des obs. mobiles
Scans lasers
Position des obstacles statiques
Position et vitesse des obstacles mobiles
Commande
Localisation du robot
Scans lasers
Commande
Localisation du robot
Scans lasers
Commande
Odométrie
Scans lasers
Simulation Expérimentations
sur robot réel
ou
Figure 5.3 – Architecture logicielle utilis´ee pour la navigation autonome de
la chaise roulante automatis´ee.
CHAPITRE 5. APPLICATION `A UNE CHAISE ROULANTE
AUTOMATIS ´EE 135
libre de s’abonner aux donn´ees disponibles dont il a besoin, et peut
interroger la nouvelle valeur ou la modifier de mani`ere asynchrone.
– La chaise roulante fournissant des scans lasers bruts, il est n´ecessaire de
construire une repr´esentation de l’environnement de plus haut niveau
pour faciliter la d´ecision du mouvement `a entreprendre pour rejoindre
un but. Une module de d´etection et suivi des obstacles statiques
et mobiles, d´evelopp´e au sein de l’´equipe de recherche ([VA09]) a
´et´e utilis´e. Celui-ci consiste `a segmenter l’environnement en une liste
d’obstacles statiques polygonaux caract´eris´es par leur position, et une
liste d’obstacles dynamiques caract´eris´es par leur position et leur vitesse
instantan´ee, `a partir des scans lasers. Ces travaux sont d´etaill´es en
Section 5.3.2.
Figure 5.4 – Interface graphique utilis´ee afin de planifier un mouvement
et de lancer les processus de d´eformation et d’ex´ecution d’une trajectoire.
Une fenˆetre OpenGL permet de superviser la trajectoire planifi´ee (courbe
verte), les obstacles statiques d´etect´es (rectangles rouges) ainsi que le mod`ele
pr´evisionnel du comportement futur des obstacles mobiles (cylindres rouges).
L’utilisateur peut par ailleurs choisir diff´erents modes de planification et
d’ex´ecution du mouvement, et ajuster les param`etres pour chacune de ces
m´ethodes via cette interface.
– A partir de la localisation du robot et d’une repr´esentation de
l’envi-ronnement qui l’entoure, il est possible ded´ecider d’un mouvement
`
a suivre afin de rejoindre un but sans entrer en collision avec les
obstacles statiques et mobiles de l’environnement. Toute cette partie
d´ecisionnelle comportant aussi bien la planification et le suivi de
mou-136 5.2. CHAISE ROULANTE AUTOMATIS ´EE : LE SYST `EME
vement que l’´evitement d’obstacles (par d´eformation de trajectoire)
a ´et´e d´evelopp´ee par nos soins au sein d’un module nomm´e MPC
(Motion Planning and Control). Une interface graphique associ´ee (cf.
Fig. 5.4) a ´et´e d´evelopp´ee afin d’aider l’utilisateur `a choisir une
desti-nation, lancer l’ex´ecution du mouvement, et superviser le processus de
d´eformation Teddy.
(a) (b)
Figure 5.5 – Simulateur CycabTK utilis´e afin de tester l’architecture
compl`ete de navigation propos´ee. Le hall d’entr´ee de l’INRIA Rhˆone-Alpes
dans lequel ont ´et´e effectu´ees nos exp´erimentations sur la chaise roulante
a ´et´e reproduit afin d’effectuer des tests pr´eliminaires de nos travaux de
d´eformation dans cet environnement.
Notez enfin qu’un simulateur nomm´e CycabTK (cf. Fig. 5.5) a ´et´e
utilis´e au pr´ealable afin de reproduire l’environnement dans lequel les
exp´erimentations sur la chaise roulante ont ´et´e effectu´ees. Ce dernier permet
de simuler le d´eplacement du robot `a partir du contrˆole d’entr´ee qui lui est
fourni, et retourne des donn´ees capteurs simul´ees per¸cues au cours de la
navigation. Il nous a donc permis d’effectuer des tests pr´eliminaires avant
d’effectuer les exp´erimentations sur le robot r´eel.