• Aucun résultat trouvé

INTERFACE HAPTIQUE

3.5. Programmation et environnement SMAR

L’ensemble du système est géré sous l’environnement Visual C++. Un fichier d’implémentation nommé a été programmé pour assurer la communication avec les instruments et l’actionneur et le traitement les données mesurées. En compilant puis en exécutant ce fichier, le programme ouvre une boîte de dialogue qui permet de gérer l’interface haptique et d’évaluer son comportement.

Figure 3.20. Interface de gestion de l’interface haptique.

67

Lors du lancement de la boîte de dialogue, la fonction spéciale est appelée pour réaliser les opérations nécessaires à l’initialisation du Timer ainsi que d’autres fonctions. La fonction Timer contient l’ensemble des instructions réalisées à une fréquence définie. On utilise ensuite un bouton de commande intitulé « Démarrer » qui déclenche l’ensemble des fonctions nécessaires au fonctionnement de l’interface haptique.

3.5.1. Communication avec les instruments embarqués

Les méthodes de communication varient suivant la nature du destinataire et suivant le contrôle de la carte NI-845x sont présentées en Annexe A1.

La gestion et le contrôle des éléments participant au retour d’effort se font en protocole UART. Il permet de contrôler le motoréducteur et d’acquérir le signal du capteur d’effort via la carte CACII. Au niveau de la programmation, on communique avec la carte d’axes en lui envoyant des instructions. Par la suite, cette carte communique avec les équipements qu’elle gère suivant la façon dont est programmé le microcontrôleur qu’elle abrite. Les trois fonctions principales utilisées pour cela sont détaillées en Annexe B12.

3.5.2. Implémentation de la stratégie de contrôle

La plus grande partie du programme est codé dans une fonction Timer qui est appelée périodiquement. Elle contient l’essentiel de la stratégie de contrôle du système mais d’autres instructions importantes sont également contenues dans des fonctions appelées de façon ponctuelle ; par des boutons de commande par exemple. L’ensemble de cette stratégie est contenue dans les fonctions présentées en Annexe B2.

3.5.2.1. Estimation de l’attitude de l’interface haptique

Pour évaluer l’attitude de l’interface haptique, on utilise les mesures faites par trois gyroscopes et un accéléromètre. Ces mesures sont traitées afin d’obtenir trois angles d’orientation : roulis, tangage et lacet. Un filtre de Kalman est utilisé pour obtenir une meilleure estimation de ces angles. Les calculs permettant au système d’évaluer l’attitude de l’interface haptique sont réalisés de façon périodique et sont donc programmés dans la fonction Timer.

La première étape des calculs consiste à ordonner aux instruments de mesure de réaliser une acquisition. Les trois gyroscopes, l’accéléromètre et le capteur d’effort sont alors sollicités.

Pour le calcul des angles, il s’agit de calculer les angles de rotation propre à partir des mesures des deux instruments. Le roulis, le tangage et le lacet sont calculés à partir des angles de rotations propres à l’aide des équations (3.4), (3.5) et (3.6).

Maintenant que les angles de cardan donnés par les gyroscopes et par l’accéléromètre sont déterminés, on peut appliquer le filtre de Kalman pour obtenir une meilleure estimation. Une fonction nommée « Filtre_Kalman » a été codée pour réaliser l’ensemble des calculs nécessaires à l’obtention de l’angle estimé :

- Calcul de la matrice de covariance (voir (3.7))

68

- Calcul de la covariance sur l'innovation (voir (3.8)) - Calcul du gain du filtre (voir (3.9))

- Mise à jour de la matrice de covariance (voir (3.10)) - Calcul de l'innovation (voir (3.11))

- Mise à jour de l'angle (voir (3.12))

A partir d’un angle donné par les gyroscopes et par l’accéléromètre, la fonction

« Filtre_Kalman » renvoie l’angle estimé ainsi que la matrice de covariance dont la valeur est nécessaire d’une itération à l’autre.

3.5.2.2. Retour d’effort de l’interface haptique

La gestion et le retour de l’effort sont assurés par un capteur d’effort et par un motoréducteur.

La stratégie de contrôle consiste à actionner ce moteur en fonction de l’effort mesuré par le capteur. L’effort normal est mesuré en permanence. Le mode « retour d’effort » (actionnement du motoréducteur) doit être activé ou désactivé via une commande de la boîte de dialogue.

Une fonction de la carte d’axe CACII permet la réception de la réponse de la carte et son stockage dans une variable. En fonction de l’effort appliqué par l’opérateur via la sonde haptique, le motoréducteur est actionné dans un sens ou dans l’autre. L’instruction à envoyer à la carte CACII est donc construite en fonction de la valeur de l’effort mesuré. Cette instruction indique la tension à fournir à l’actionneur.

3.5.3. Visualisation sous SMAR

Ce programme permet d’obtenir en temps réel les données nécessaires à l’estimation de l’attitude de l’interface haptique. A partir de ces données, il nous est possible de programmer un environnement de visualisation sous SMAR (Système de Modélisation et d’Animation Robotique). Ce logiciel a été développé par l’Institut PPRIME (anciennement Laboratoire de Mécanique des Solides) afin de modéliser des systèmes robotisés et de réaliser des simulations sur leur comportement [Zeghloul 97].

L’interface haptique a été modélisée sous SMAR. La nature des liaisons entre elle et son support référentiel a été définie. On rappelle qu’il y aura trois angles à transférer au modèle : roulis, tangage et lacet. La liaison prismatique entre les deux parties principales de cette interface est également à prendre en compte. Il y a donc au total quatre liaisons à définir et à paramétrer :

- Une liaison pivot autour de l’axe XT du repère de référence (tangage) - Une liaison pivot autour de l’axe YT du même repère (roulis)

- Une liaison pivot autour de l’axe ZS du repère de l’interface haptique (lacet) - Une liaison prismatique suivant l’axe ZS du même repère (liaison actionneur)

Le programme permettant le démarrage de l’interface gérant l’interface haptique a été modifié pour démarrer le logiciel SMAR durant son exécution. Le lancement de différentes simulations est alors proposé. En choisissant l’application « PROSIT », SMAR ouvre l’environnement représentant l’interface haptique sur son support ainsi que la boîte de dialogue associée. Il suffit ensuite d’utiliser cette interface normalement pour commencer la simulation. L’interface haptique représentée sous SMAR reproduit alors les mouvements effectués par la vraie interface haptique en temps réel.

69

Figure 3.21. Visualisation des mouvements de l’interface haptique sous SMAR.

3.6. Evaluation du filtre de Kalman adaptatif et