• Aucun résultat trouvé

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.