Méthode de Détermination des Fonctions de Gains - Université de Lille

diode zener 3,9 V. D+ D- 5V. USB prog 1 prog 2 prog 3 progr 4 prog 5. +3,3 V. D+. D-. USB PicKit 2. Figure 1 : Schéma électronique du simulateur de souris.
434KB taille 3 téléchargements 211 vues
Méthode de Détermination des Fonctions de Gains Jean-Philippe Deblonde, Géry Casiez et Laurent Grisoni LIFL & INRIA Lille Nord-Europe Université de Lille 1, F RANCE {jean-philippe.deblonde, gery.casiez, laurent.grisoni}@lifl.fr

RÉSUMÉ

Cet article propose un dispositif et une méthode pour obtenir les fonctions de gains des différents systèmes d’exploitation courants. Nous présentons tout d’abord une méthode objective, reposant sur un dispositif matériel spécifique, de mesure de la fonction de gain utilisée par un système. A l’aide de ce dispositif, nous déterminons les fonctions de gains utilisées sur les systèmes d’exploitations courants. Nous examinons enfin les différences entre ces différentes fonctions. Les résultats montrent des différences importantes dans les profils des courbes obtenues. MOTS CLÉS :

fonction de gain, pointage, courbe

d’accélération. ABSTRACT

This article presents an apparatus and a method to retrieve the gain functions from different operating systems. First, we present a method for measuring the gain function used on an arbitrary system, based on some specific hardware. Using this hardware, we describe the gain functions used by current operating systems. We then analyze the differences between those functions. The results show important differences between the curves retrieved. CATEGORIES AND SUBJECT DESCRIPTORS: H5.2 [Information interfaces and presentation]: User Interfaces. - Graphical user interfaces. GENERAL TERMS: KEYWORDS:

Measurement, Performance

gain function, pointing, pointer accelera-

tion, CD gain. INTRODUCTION

La grande majorité des interfaces graphiques disponibles à l’heure actuelle sont utilisées en interaction indirecte. La surface d’interaction réelle (celle sur laquelle évolue la main de l’utilisateur), et la surface d’écran associée où évolue le pointeur virtuel étant de dimensions différentes, Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. IHM 2010, 20-23 Septembre 2010, Luxembourg, Luxembourg .

une fonction de correspondance est, de fait, nécessaire. Bien qu’elle puisse se présenter différemment selon la nature du périphérique, la forme la plus répandue est celle d’une fonction de gain, donnant une relation simple entre la vitesse de la main et la vitesse du pointeur à l’écran. Sur la plupart des systèmes d’exploitation courants, une fonction de gain est appliquée par défaut au pointeur. D’une manière générale, le profil de la fonction de gain implémentée par un système d’exploitation donné est peu (voire pas) documenté. Il est donc à l’heure actuelle quasiment impossible d’espérer développer une application multiplateforme qui proposerait à l’utilisateur un contrôle rigoureux, indépendant du système d’exploitation, de la fonction de gain du pointeur souris. Les travaux disponibles dans l’état de l’art montrent que le profil de la fonction de gain a une influence sur les performances de pointage [1]. Ces travaux suggèrent la possibilité d’optimiser le profil de la fonction de gain pour améliorer les performances. Un bon point de départ est de commencer par comparer les fonctions utilisées sur les systèmes d’exploitation actuels pour ensuite guider la définition d’une courbe optimale. Dans cet article, nous proposons une méthode pour déterminer les fonctions de gains utilisées par un système, sans connaissance préalable du système d’exploitation utilisé. L’article est organisé de la manière suivante : nous décrivons tout d’abord, dans la première section, les résultats disponibles dans la littérature concernant les fonctions de gains. Ensuite, nous donnons quelques éléments techniques généraux, nécessaire au lecteur pour la bonne lecture du travail ici présenté. Nous décrivons ensuite la proposition matérielle que nous faisons, pour pouvoir extraire la fonction de gain d’un système. Enfin, nous comparons les différentes courbes obtenues entre elles et par rapport à celles de l’état de l’art. TRAVAUX ANTERIEURS

Le gain ( CD gain en anglais) est une grandeur sans unité qui définit le facteur d’amplification des mouvements de la main pour le contrôle d’un pointeur virtuel. Il se définit comme le rapport entre la vitesse du pointeur (Vpointeur ) et celle de la main (Vmain ), exprimées dans les mêmes unités [1] (equation 1). Vpointeur (1) gain = Vmain

(2)

Le système d’exploitation lit les informations brutes reçues (en nombre de points) et en déduit une vitesse du périphérique en supposant que sa résolution est de 400 DPI1 . Que ce soit sur Windows, Mac ou Linux, le changement notable de comportement du pointeur quand on change de résolution de souris montre que ces systèmes n’ont aucune connaissance de cette information. Le système prend également en compte la résolution de l’écran et sa fréquence de rafraîchissement pour obtenir la vitesse du pointeur désirée en fonction du gain utilisé. Les systèmes d’exploitation peuvent également appliquer un mécanisme de sous-pixelisation qui consiste à enregistrer les 1 http://www.microsoft.com/whdc/archive/ pointer-bal.mspx

USB +5V

USB D-

USB D+

D-

D+

prog 1

USB 0V

prog 2

prog 3

progr 4

+3,3 V

D+

USB PicKit 2 3,3 V diode zener 3,9 V

D+ D- 5V USB

D+

+ 3,3 V

1k Ω

10 kΩ

D- +3,3 V

20

19

18

17

16

15

14

13 12 11 RB4 RB5 RB6

7

8

PIC 18LF14K50 1

2

3

4

5

6

9

RB7 10

120 kΩ

3,3 V

FONCTIONNEMENT D’UNE SOURIS

Une souris est un périphérique qui mesure sa position de manière relative: la variation de sa position par rapport à celle précédente est mesurée. La position est mesurée avec une certaine résolution, généralement exprimée en DPI (dots per inch ou points par pouce). Les informations

0,0254 Res

Ainsi la vitesse maximale mesurable pour une souris 400 DPI branchée sur un port USB à 125 Hz est de 1,016 m.s−1 . Il est intéressant de voir que cette vitesse chute à 0,127 m.s−1 dans le cas d’une souris à 3200 DPI. Pour cette raison les constructeurs de souris ont généralement prévu la possibilité d’envoyer les informations à 1000 Hz. Dans ce cas, on retrouve une vitesse maximale mesurable de 1,016 m.s−1 .

470 Ω

Ces derniers travaux ont permis de montrer que les fonctions de gains dynamiques permettent d’améliorer les performances comparées aux fonctions de gains constantes. Cependant, un seul profil de courbe a été testé: celui de la fonction de gain dynamique de Windows. Les travaux de Casiez et al. présentent aussi les fonctions de gains dynamiques de Mac OS X, à nouveau extraites et interprétées de la base de registre, mais non évaluées.

V itesseM ax = F req × 2T aille−1 ×

470 Ω

Différents travaux ont comparé les fonctions de gains constantes et dynamiques. Certains ont conclu que les fonctions de gains dynamiques n’ont que peu d’effet [3], ou qu’elles diminuent les performances [2, 4]. Ces études ont porté sur des fonctions de gains dynamiques qui étaient non continues, ou avec un gain maximum peu élevé, alors que les courbes effectivement utilisées par les systèmes d’exploitation modernes sont au contraire continues, avec des valeurs de gains importantes pour des vitesses élevées. Casiez et al. ont étudié l’influence des fonctions de gains constantes et dynamiques dans les tâches de pointage [1]. Pour les fonctions de gains constantes, ils ont utilisé des valeurs de gains égales à 1, 2, 4, 6, 8 et 12. Pour les fonctions de gain dynamiques, ils ont utilisé les fonctions de gains dynamiques du système d’exploitation Microsoft Windows XP, en extrayant les valeurs de la base de registre. Leurs travaux précisent qu’une seule courbe est enregistrée dans la base de registre du système Windows et que les différentes positions du curseur dans le panneau de configuration de la souris permettent d’appliquer un facteur d’échelle à cette courbe. Les courbes testées correspondent à des facteurs d’échelle de 0,1; 0,25; 0,5; 0,75; 1,0 et 1,25. Les résultats montrent que les fonctions de gains dynamiques testées améliorent significativement le temps de pointage par rapport aux fonctions de gains constantes, de 3,3% en moyenne, avec un avantage marqué pour les petites cibles (5,6%). Il a également été montré que pour les fonctions de gains constantes ainsi que pour les différentes fonctions de gains dynamiques proposées par Windows, il existe un ensemble de fonctions pour lesquelles les performances sont optimales. En effet, les courbes Windows correspondant à des facteurs d’échelle de 0,1; 0,25 et 1,25 ont montré une diminution des performances.

numérisées (exprimées en nombre de points) sont stockées sur 8 bits pour chaque axe et envoyées, dans le cas d’une souris USB, à 125 Hz sur le bus. La résolution par défaut d’une souris est de 400 DPI, sachant que des souris jusqu’à 5600 DPI sont commercialisées. A partir de la résolution de la souris exprimée en DPI (Res), du nombre de bits utilisé pour stocker les informations (T aille) et de la fréquence d’envoi des données (F req), il est possible de calculer la vitesse maximale mesurable (V itesseM ax) exprimée en m.s−1 selon l’équation 2.

≈ 100 Ω

Le gain peut être constant ou varier en fonction de la vitesse de la main. Dans ce dernier cas, on parle communément d’accélération du pointeur. La fonction qui donne la valeur du gain en fonction de la vitesse de la main est appelée fonction de gain. Lorsque le gain reste constant, quelque soit la vitesse de la main, on parle de fonction de gain constante et lorsqu’il varie avec la vitesse de la main, on parle de fonction de gain dynamique.

Q

3,3 V

12Mhz prog 1

Figure 1 : Schéma électronique du simulateur de souris.

prog 5

D-

12

20 18 16 14

Gain

Gain

12 10 8 6 4 2 0

44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0

10 8 6 4 2 0 0

0

0

0,2

0,4

0,6

0,8

1

0,05

0,1

0,1

0,15

0,2

0,3

déplacement de la souris sans forcément bouger le pointeur à l’écran1 . La solution que nous proposons permet de déterminer la fonction de gain du système, en contrôlant les informations envoyées par un circuit électronique qui simule une souris et en mesurant en retour le déplacement du pointeur à l’écran. SIMULATEUR DE SOURIS

Nous avons développé un circuit électronique connecté à l’ordinateur sur un port USB. L’objectif est que l’ordinateur considère ce circuit comme une vraie souris mais que nous puissions contrôler précisément les informations envoyées. Le circuit électronique est conçu autour du PIC 18LF14K50 de chez Microchip2 . C’est un composant programmable en C en utilisant les bibliothèques de compilation et le système de programmation PICkit 2, également conçus par Microchip. En plus des composants nécessaires pour faire fonctionner le PIC, nous avons ajouté un interrupteur et deux leds utilisées comme retour d’information (Figure 1). Nous avons utilisé un firmware de souris fourni par Microchip pour que le PIC soit vu par l’ordinateur comme une vraie souris. Le reste du code permet de contrôler le nombre de points envoyés par notre simulateur de souris pour l’axe des abscisses (qui correspond à la largeur de l’écran). Cette valeur peut varier de -127 à 127. Notre méthode de détermination de la fonction de gain du système consiste à d’abord placer le pointeur de la souris à gauche de l’écran. Nous envoyons ensuite un nombre connu de points en appuyant sur le bouton de notre sim2 http://www.microchip.com

0,4

0,5

0,6

0,7

0,8

0,9

1

1,2

Vitesse souris (m.s-1)

Vitesse souris (m.s-1) Figure 2 : Les courbes grises correspondent aux 11 fonctions de gain de Windows XP quand la case "Améliorer la précision du pointeur" est cochée, de "lente" (curseur tout à gauche, courbe du bas), à "rapide" (curseur tout à droite, courbe du haut). Les courbes en pointillés orange correspondent aux facteurs d’échelle de 0,25; 0,5; 0,75 et 1,0 testées par Casiez et al. [1]

0,2

Figure 3 : Les courbes grises correspondent aux fonctions de gains pour les 10 positions du curseur sur l’interface de configuration de la souris de Mac OS X, de "lente" (courbe du bas) à "rapide" (courbe du haut). Les courbes en rouge pointillés correspondent aux courbes obtenues par Casiez et al. [1]. (La partie supérieure gauche de la figure correspond à un zoom sur l’intervalle [0; 0,2]).

ulateur de souris et nous mesurons le déplacement correspondant du pointeur en pixels. Le couple de valeur (nombre de points de la souris, déplacement du pointeur en pixels) est enregistré et le pointeur est re-positionné à gauche avant d’envoyer une nouvelle valeur de déplacement. Compte tenu de la technique de sous-pixelisation utilisée sur certains systèmes, il se peut que le pointeur ne bouge pas quand un nombre petit de points est envoyé. Par ailleurs, pour augmenter la précision de mesure des déplacements en pixels et obtenir des valeurs décimales plutôt que des valeurs entières, nous répétons plusieurs fois l’envoi d’une valeur de déplacement de la souris en points. En pratique, notre simulateur de souris envoie d’abord 10 fois 1 point lors du premier appui sur le bouton du simulateur puis l’expérimentateur appuie sur la barre espace pour mesurer le déplacement du pointeur correspondant, enregistrer les valeurs et re-positionner le pointeur à gauche. Un nouvel appui sur le bouton du simulateur envoie 10 fois 2 points et ainsi de suite. RESULTATS

Nous avons utilisé notre système pour déterminer les fonctions de gains des systèmes d’exploitation Windows XP SP3, Mac OS 10.5.6 et Linux Ubuntu 9.04. Pour passer d’une valeur de déplacement de la souris en points (points) à une vitesse (Vsouris ) en m.s−1 , nous avons supposé que la résolution de souris (Res) est de 400 DPI et que les informations sont envoyées à la fréquence (F req) de 125 Hz (Equation 3).

Vsouris

=

0,0254 × F req ×

points Res

(3)

gain =

Ressouris pixels × points Resecran

(4)

Pour Windows XP, nous avons obtenu les courbes pour toutes les positions du curseur dans le panneau de configuration de la souris quand la case "Améliorer la précision du pointeur" est cochée (Figure 2). Nous avons fait de même pour les 10 positions du curseur dans l’interface de configuration de la souris de Mac OS X (Figure 3) ainsi que celles de Windows quand la case "Améliorer la précision du pointeur" est décochée et également celle de la configuration par défaut sous Linux Ubuntu (Figure 4)3 . DISCUSSION

Les fonctions de gains obtenues pour Windows avec notre méthode sont très proches de celles utilisées par Casiez et al. [1] (Figure 2). Les facteurs d’échelle 0,25; 0,5; 0,75 et 1,0 utilisés correspondent ainsi aux 3e , 5e , 7e et 9e positions du curseur en partant de la gauche, sur l’interface de réglage de la souris. Nous pouvons considérer que ces résultats permettent de valider la méthode que nous avons proposée. En revanche, en ce qui concerne Mac OS X, même si les courbes gardent la même allure, nous constatons de grandes différences avec les courbes extraites par Casiez et al.. Ces derniers avaient obtenus ces courbes à partir de la base de registre du système, sans pouvoir avoir accès à l’intégralité de la chaîne de traitement. Nous pouvons noter que Mac OS X propose un ensemble de courbes, toutes différentes, même si le début de chaque courbe est identique. Lorsque les courbes Mac OS sont représentées par la vitesse curseur en fonction de la vitesse périphérique, nous pouvons voir une asymptote horizontale sur les hautes vitesses ; ceci est équivalent à ce que nous pouvons noter sur le graphe de la figure3, à savoir une chute de la valeur du gain sur les hautes valeurs de vitesse périphérique. Windows quant à lui propose deux familles de courbes accessibles en cochant ou décochant l’option "Améliorer la précision du pointeur" (cochée par défaut). Lorsque l’option est cochée, les différentes positions de réglage permettent d’appliquer un 3 Les données numériques des courbes sont disponibles à cette adresse http://www.lifl.fr/~casiez

14

12

10

8

Gain

Pour le calcul de la vitesse du pointeur en m.s−1 , nous avons utilisé la même équation en remplaçant le nombre de points par le nombre de pixels et en utilisant la résolution de l’écran en DPI. Pour la fréquence, nous n’avons pas utilisé celle de l’écran mais celle de la souris. En effet, que les informations soient lues dans la pile à la fréquence de l’écran ou celle de la souris, nous obtiendrons les mêmes résultats de calcul de vitesse, en supposant que les données sont accumulées dans la pile. Ainsi le calcul du gain (gain) en fonction du nombre de points envoyés, de la résolution de la souris (Ressouris ), de celle de l’écran (Resecran ) et du nombre de pixels de déplacement du pointeur (pixels) est donné par l’équation 4.

6

4

2

0 0

0,2

0,4

0,6

0,8

1

Vitesse souris (m.s-1)

Figure 4 : Les courbes grises correspondent aux fonctions de gains de Windows XP quand le bouton "Améliorer la précision du pointeur" est décoché. Celle du bas est obtenue pour le curseur tout à gauche et celle du haut pour le curseur tout à droite. La courbe bleue est celle de la fonction de gain par défaut de Linux Ubuntu (d’autres courbes de même allure sont accessibles via l’interface de configuration de la souris).

facteur d’échelle à une courbe de référence. Lorsqu’elle est décochée, des fonctions de gain constantes sont utilisées, à l’exception du début de la courbe qui correspond à une fonction de gain dynamique. Linux Ubuntu propose une fonction similaire. Il est intéressant de noter qu’aucune des fonctions de gains proposées par les différents OS n’est constante. CONCLUSION

Nous avons proposé une méthode de détermination des fonctions de gains utilisées par les différents systèmes d’exploitation existants, sans connaissance préalable ou modification du système. Cette méthode a été validée par comparaison aux travaux antérieurs et nous avons pu constater les différences importantes qui existent dans les profils des différentes courbes proposées. Nous envisageons comme travaux futurs de comparer les performances de ces fonctions de gains. REMERCIEMENTS

Ce travail a été financé par le projet ANR n◦ ANR-07TECSAN-020 “REACTIVE”. BIBLIOGRAPHIE 1. Casiez, G., Vogel, D., Balakrishnan, R., and Cockburn, A. The impact of control-display gain on user performance in pointing tasks. Human-Computer Interaction, Taylor and Francis, 23(3):215–250, 2008. 2. Graham, E. Virtual pointing on a computer display: nonlinear control display-mappings. Graphics Interface Conference, pages 36–46, 1996. 3. Jellinek, H., and Card, S. Powermice and user performance. ACM CHI Conference on Human Factors in Computing Systems, pages 213–220, 1990. 4. Trankle, U., and Deutschmann, D. Factors influencing speed and precision of cursor positioning using a mouse. Ergonomics, 34:161–174, 1991.

1,2