Dispositif de commande gestuelle d'un système, et procédé associé.
L'invention porte sur un dispositif de commande gestuelle d'un système, et sur un procédé associé.
Dans le contexte de commandes simples, telles celles appliquées aux téléviseurs, magnétoscopes, lecteurs multimédia, ou décodeurs de télévision, les télécommandes à boutons se sont imposées. Le principe généralement appliqué est d'associer une fonction du système télécommandé à un bouton de la télécommande. Le nombre croissant de fonctions du système à commander a entraîné une croissance dans la même proportion du nombre de boutons des télécommandes.
Des écrans spécifiques présentant une interface de commande homme machine visuelle ont permis de contrôler cette croissance. Sur ces écrans, l'utilisateur peut se déplacer de proche en proche, par sélections successives sur différentes options présentées sur l'écran, et valider son choix de commande. Ces interfaces restent lourdes et complexes à utiliser et ne permettent pas une navigation intuitive dans l'ensemble des moyens de commande du système.
En parallèle, des principes de commande de systèmes évolués (par exemple via des écrans), ont été développés et conçus ces trente dernières années conjointement avec l'évolution des possibilités offertes par les souris d'ordinateur de bureau. Ces dernières permettent de contrôler un grand nombre de fonctions de ces systèmes à l'aide d'un petit nombre de commandes.
Pour y parvenir, ces souris d'ordinateur de bureau ont notamment introduit un ensemble de commandes contrôlées par le mouvement de la souris sur le bureau. Ce mouvement de souris d'ordinateur est notamment exploité par l'utilisateur pour contrôler la position d'un curseur à l'écran qui peut indiquer l'état du système et permet d'activer simplement des fonctions contextuelles de cette position à l'aide d'un nombre très réduit de boutons.
L'exploitation du mouvement de l'utilisateur, jusqu'alors limité à un contexte de déplacement d'une souris sur une table, (et par conséquent dans un espace à deux dimensions), s'est plus récemment élargi à un contexte de mouvement libre dans l'espace, par des souris dans l'air ou "air mouse" en langue anglaise", ce qui permet d'élargir le contexte d'application aux
situations dans lesquelles aucun support horizontal plan n'est présent, permettant également l'accès à des mouvements selon les trois dimensions de l'espace. Les situations applicatives en sont multiples, telle celle d'un orateur qui souhaite contrôler un système (notamment un logiciel sur son ordinateur) sans contrainte d'accéder à un support plan, ou encore celle d'un utilisateur de système multimédia (par exemple un téléspectateur ou un utilisateur qui souhaite visualiser des photos sur sa télévision, ou jouer de la musique, ...) qui exploite un système informatique multimédia. Dans les deux cas, l'environnement de l'utilisateur est dépourvu de support plan qui permettrait l'exploitation d'une souris de bureau.
Dans le contexte des systèmes multimédia précédemment introduits, et jusqu'à récemment, l'interaction homme-système se basait sur des télécommandes dénuées de fonctions de capture de mouvement. Comme précédemment décrit, les télécommandes ainsi conçues ont fini par être équipées d'un grand nombre de boutons, nécessaires au contrôle de systèmes multimédia proposant toujours plus de fonctionnalités. L'ensemble des commandes nécessaires au contrôle d'un système est grand et engendre une grande complexité pour l'utilisateur. Celui-ci doit donc mémoriser les nombreuses actions à réaliser pour activer chaque commande. Il doit également vérifier fréquemment que les boutons qu'il active sont ceux qui correspondent à l'action attendue, ce qui occasionne de nombreux allers-retours du regard entre l'écran et la télécommande.
La baisse des coûts des capteurs de mouvement, a permis d'introduire des commandes par des mouvements dans l'espace dans ce contexte d'application.
Ces systèmes à commande gestuelle dans l'espace, i.e. en trois dimensions, ont pour vocation d'améliorer de façon significative l'ergonomie de l'interface utilisateur par l'utilisation de gestes intuitifs et en réduisant au minimum l'interaction passant par des commandes classiques déclenchées par des boutons.
Ces dispositifs de commande gestuelle de systèmes sont de plus en plus courants, tels des souris ou des télécommandes pour consoles de jeux ou systèmes multimédia. Ils sont utilisés souvent utilisés, par exemple pour contrôler la position d'un curseur sur l'écran, comme dans le brevet US5440326 qui décrit le contrôle d'un curseur à l'écran à partir d'un
gyroscope. Les télécommande à mesure du mouvement permettent également de reconnaître des gestes et ainsi lancer des actions spécifiques liées à ces gestes, ou de contrôler des niveaux continus (comme l'intensité du son, ou le défilement d'un document, la vitesse de lecture d'une vidéo, ...). Le mouvement de l'utilisateur doit alors être interprété par différentes méthodes de traitement des signaux de mouvement correspondant à ce qui est attendu, ce qui nécessite l'activation du bon mode au bon moment selon l'intention de l'utilisateur : il peut s'agir d'un mode de contrôle de la position du curseur par le mouvement, d'un mode de reconnaissance des gestes, d'un mode de contrôle d'un niveau continu.
Il est par exemple connu la demande de brevet EP1985233A1 qui porte sur un procédé de détection d'un axe de rotation sensiblement invariant d'un mouvement d'un mobile équipé d'au moins un capteur inertiel ou magnétique à trois axes de sensibilité.
Actuellement, le passage d'un mode à l'autre nécessite que l'utilisateur déclare son intention, ce qui est classiquement implémenté par l'affectation de boutons pour chaque intention sur la télécommande. Il subsiste donc des situations dans lesquelles l'utilisateur doit toujours appuyer sur des boutons, par exemple pour passer d'un mode à l'autre.
Un but de l'invention est de réduire la complexité de la commande du système en proposant des commandes plus simples à mémoriser pour l'utilisateur, plus intuitives et ergonomiques et exploitant davantage le geste, réduisant ainsi le nombre de fonctions qui doivent être activées par des boutons.
Aussi, il est proposé, selon un aspect de l'invention, un dispositif de commande gestuelle d'un système, le dispositif comprenant un élément mobile de commande préhensible, un ensemble capteur de mouvement adapté pour mesurer les mouvements dudit élément mobile, des moyens de détection d'une rotation et/ou translation dudit élément mobile selon un axe sensiblement invariant sur une fenêtre temporelle, comprenant, en outre, des moyens de réglage de la valeur d'au moins un paramètre dudit système, et des moyens de commande d'activation/désactivation desdits moyens de réglage adaptés pour activer lesdits moyens de réglage lors d'une détection par lesdits moyens de détection d'une rotation et/ou translation dudit élément mobile selon un axe sensiblement invariant sur une fenêtre temporelle.
Un tel dispositif permet de faciliter l'utilisation du système au moyen de commande gestuelle selon un axe. En effet, le dispositif est ainsi capable d'activer automatiquement un mode de contrôle du système selon les gestes de l'utilisateur, sans que ce dernier n'aie à indiquer son intention autrement que par un geste de rotation ou translation selon un axe.
Dans un mode de réalisation, les moyens de détection sont adaptés pour détecter une rotation et/ou translation dudit élément mobile selon un axe sensiblement invariant par comparaison d'un paramètre représentatif du mouvement dudit élément mobile avec un seuil.
Ce paramètre représente la mesure dans laquelle le mouvement est selon un seul axe, par exemple, plus ce paramètre est grand, plus le mouvement est selon un seul axe. Si le paramètre est supérieur au seuil, le dispositif entre dans le mode de réglage, et si le paramètre est en dessous du seuil, le système entre en mode de reconnaissance de geste. Ce seuil peut être pré-réglé, ou peut-être (automatiquement) adapté à l'utilisateur.
Selon un mode de réalisation, lesdits moyens de commande sont adaptés pour activer des moyens différents desdits moyens de réglage en l'absence de détection par lesdits moyens de détection d'une rotation et/ou translation dudit élément mobile selon un axe sensiblement invariant sur une fenêtre temporelle.
Dans un mode de réalisation, lesdits moyens différents desdits moyens de réglage comprennent des moyens de reconnaissance de geste.
Le dispositif de l'invention est capable de déterminer le mode dans lequel les gestes de l'utilisateur doivent être interprétées, sans que l'utilisateur n'ait à indiquer le mode désiré (entre réglage et reconnaissance de geste). Par exemple, le système choisit automatiquement entre un mode de commande, un mode dans lequel un paramètre du dispositif peut être réglé, ou un mode de reconnaissance de geste, un mode dans lequel les mouvements de l'utilisateur sont comparés à une bibliothèque de gestes. Par exemple, l'utilisateur peut sélectionner le mode de réglage en faisant un mouvement (rotation ou translation) le long d'un axe unique. Cela signifie que dès que le dispositif détecte que l'utilisateur fait un geste sur un seul axe, le système passe en mode de réglage. Pour tous les autres gestes, le système utilise le mode de reconnaissance de gestes. Par conséquent, il est
important de distinguer les gestes selon un axe sensiblement invariant des autres gestes
Selon un mode de réalisation, lesdits moyens de détection sont adaptés pour modifier ledit seuil après au moins un geste ayant déclenché les moyens de reconnaissance de gestes, pour lequel la valeur maximale dudit paramètre représentatif n'est pas comprise dans une plage de pourcentages de valeurs dudit seuil, typiquement entre 40 et 60 % dudit seuil.
Dans un mode de réalisation, lesdits moyens de détection sont adaptés pour modifier ledit seuil après détection d'au moins un geste ayant activé les moyens de réglage, la durée d'activation des moyens de réglage étant inférieure à une durée limite.
Selon un mode de réalisation, ladite fenêtre temporelle est glissante.
Ainsi le dispositif est, de manière continue, en mode de détection du mouvement de l'utilisateur.
De manière générale l'analyse de détection de mouvement d'axe sensiblement invariant conduite sur une fenêtre temporelle donnée peut être appliquée pour des fenêtres glissantes, en décalant simplement la fenêtre temporelle sur laquelle l'opération de détection est réalisée et ainsi fournir une réponse de détection continue dans le temps.
Dans un mode de réalisation, lesdits moyens de détection sont adaptés pour déterminer la présence d'un mouvement significatif sur ladite fenêtre temporelle à partir d'un calcul de la valeur d'une variable représentative dudit mouvement et d'une comparaison de ladite valeur avec un seuil.
On entend par mouvement significatif un mouvement réalisé de manière intentionnelle par l'utilisateur, qui doit se traduire par des amplitudes suffisamment distinctes du bruit sur les signaux de mouvement mesurés. Le seuil est déterminé en fonction de la qualité des capteurs (leur niveau de bruit) et en fonction de l'amplitude enregistrée pour des gestes considérés comme intentionnels.
Ainsi l'invention permet d'éviter de détecter des mouvements selon un axe sensiblement invariant de manière inopportune, alors même
que l'utilisateur n'a pas réalisé de mouvement intentionnel, ce qui évite de générer des changements de modes inopportuns du système commandé.
Selon un mode de réalisation, lesdits moyens de détection sont adaptés pour délivrer en sortie des valeurs de paramètres caractérisant ledit axe de rotation et/ou translation détecté.
Il est ainsi possible de caractériser avec précision l'axe de rotation et/ou translation détecté.
Par exemple, lesdits moyens de détection sont adaptés pour utiliser une décomposition en valeurs singulières.
Ainsi, il est possible de caractériser un axe selon un procédé éprouvé, tel qu'illustré par exemple dans la demande de brevet EP1985233A1 faisant référence deux ouvrages "Principal Component Analysis de IT Jolliffe" chez Springer et "A User's Guide to Principal Components" (Wiley Séries in Probability and Statistics) de J. Edward Jackson, permettant à la fois d'estimer si le mouvement est réalisé selon un axe unique ou sensiblement constant, et de fournir des valeurs de paramètres de l'axe ainsi détecté. Les moyens de détection sont adaptés pour détecter et caractériser l'axe unique en mettant en œuvre un procédé adapté du brevet EP qui applique les méthodes de décomposition d'une matrice formée à partir des mesures des capteurs issues de la fenêtre temporelle analysée en valeurs singulières ou en valeurs propres et vecteurs propres.
Cette méthode permet tout à la fois de détecter si une rotation ou une translation d'axe sensiblement unique a été réalisée et de caractériser cet axe invariant. Le critère de détection peut être réglé par rapport à la puissance du bruit des capteurs. Le critère de détection peut également prendre en compte les mouvements non intentionnels.
Dans un mode de réalisation, lesdits moyens de commande sont adaptés pour associer les moyens de réglage à au moins un paramètre du système en fonction desdites valeurs de paramètres caractérisant ledit axe de rotation et/ou translation détectée, et de valeurs définies correspondant à au moins un axe prédéfini de rotation et/ou translation.
Ainsi, il est possible d'associer un réglage du système en fonction de la réalisation d'un mouvement de rotation et/ou translation selon un axe prédéterminé, et d'utiliser des axes prédéfinis associés respectivement à un
réglage différent. Il est également possible de réaliser une association entre un réglage du système et un ensemble d'axes prédéfinis ou une plage d'axes par une logique de décision implémentée dans les moyens de commande.
Selon un mode de réalisation :
- lesdits moyens de détection sont, en outre, adaptés pour délivrer en sortie une valeur d'un paramètre représentatif d'une amplitude du mouvement de rotation et/ou translation selon l'axe détecté,
- lesdits moyens de commande sont, en outre, adaptés pour commander une intensité de réglage au(x) paramètre(s) du système en fonction de ladite ou lesdites amplitudes détectées par lesdits moyens de détection.
Il est ainsi possible de commander facilement l'intensité du réglage souhaité. Bien entendu, la valeur du paramètre peut être fournie en continu.
Dans un mode de réalisation, ledit ensemble capteur de mouvement comprend des premiers moyens de mesure des angles ou des vitesses de rotation angulaires selon au moins deux axes.
Ainsi il est possible de détecter automatiquement, à l'aide des moyens de détection, un mouvement de rotation de l'élément mobile de commande préhensible réalisé selon un axe pendant une fenêtre temporelle choisie, et contrôler un niveau continu du système par des mouvements de rotation de l'ensemble préhensible. Ce principe de capteur de rotation est par ailleurs largement répandu dans les produits de pointage comme les Air Mouse ou les télécommandes à mesure de mouvement car il permet de contrôler de façon ergonomique le déplacement d'un curseur à l'écran, ce qui permet ainsi à l'invention de pouvoir s'appliquer sans remettre en cause les dispositifs capteurs couramment employés. Typiquement, dans le cas d'une télécommande à mesure de mouvements, la durée de la fenêtre temporelle peut être de l'ordre de 100 ms à 500 ms.
Selon un mode de réalisation, ledit ensemble capteur de mouvement comprend des deuxièmes moyens de mesure des positions linéaires, des vitesses linéaires, ou des accélérations linéaires selon au moins deux axes.
Il est ainsi possible de détecter un mouvement de translation selon un axe sensiblement invariant de l'élément mobile de commande préhensible.
Il est ainsi possible de détecter un mouvement d'axe sensiblement invariant à la fois en rotation et en translation. Ces deux natures de mouvement peuvent être exploitées pour augmenter le nombre de combinaisons possibles de mouvements à axes invariants détecté pour commander un grand nombre de modes possible du système. Par ailleurs, le fait de disposer de plusieurs natures de capteurs augmente la performance de la détection en confrontant des critères de détection d'axe unique issus des différents capteurs. Par exemple, il est possible d'utiliser les mesures d'un capteur accélérométrique pour conforter, ou mieux caractériser une détection de rotation d'axe unique par des capteurs de vitesse de rotation.
Ainsi, si la détection doit répondre à un critère de rotation à axe unique sans translation du dispositif préhensible, il sera aisé de vérifier, à l'aide de la mesure issue de l'accéléromètre, que le dispositif n'a pas subi d'accélération selon l'axe de rotation détecté. On limite ainsi les fausses détections.
Selon un mode de réalisation, lesdits moyens de détection sont adaptés pour utiliser les valeurs absolues des données fournies par ledit ensemble capteur de mouvement à la place desdites données.
L'utilisation des valeurs absolues des données fournies par l'ensemble capteur de mouvement plutôt que les données directement fournies par l'ensemble capteur de mouvement permet d'améliorer la qualité de détection d'une rotation selon un axe unique en limitant les cas non détectés. Ainsi, l'utilisateur peut réaliser des mouvements d'allers-retours selon un axe unique, le sens de déplacement aller ou retour ne sera pas pris en compte pour la détection de mouvement d'axe unique. Pour déterminer l'axe unique ou pour mesurer les déplacements selon l'axe unique, les mesures sont prises en compte avec leur signe, et non les valeurs absolues de ces mesures.
Dans un mode de réalisation, lesdits moyens de détection sont adaptés pour détecter une rotation et/ou une translation selon un axe sensiblement invariant sur ladite fenêtre temporelle à partir d'un calcul d'une
proportion des amplitudes des mouvements de chaque axe par rapport à l'amplitude du mouvement global.
Ces proportions peuvent ainsi être utilement ramenées à des indicateurs normalisés. Ainsi, à titre d'exemple, dans un système à deux axes de mesure x et y, on forme les proportions de mouvement sur x que l'on peut noter px et sur y que l'on peut noter py. Sans restreindre la généralité, on peut se ramener pour la qualité de l'exemple à des proportions normalisées entre -1 et 1 . Si l'on mesure une proportion de mouvement majoritaire selon l'axe x (soit px proche de 1 ) et par voie de conséquence quasi nul selon l'axe y (py proche de 0), alors c'est un mouvement d'axe unique que l'on peut calculer à l'aide des proportions par : px*x + py*y ~= x qui est détecté. Si les proportions de mouvements selon x et y sont de même valeur alors, c'est un mouvement selon l'axe px*x + py*y ou px et py sont égales.
A titre d'exemple, ou dans un mode de réalisation, la mesure des proportions proposée ci-dessus, pourra être simplement réalisée en rapportant l'amplitude moyenne du signal issu de chaque axe de mesure par rapport à la somme des valeurs absolues des moyennes des amplitudes des axes.
Pour effectuer l'opération de détection de mouvement selon un axe prédéterminé, il est alors facile de connaître les valeurs des proportions correspondantes à cet axe prédéterminé et donc de tester si les proportions calculées à partir des signaux de mouvement sont proches des valeurs attendues. Exemple : px=1 , py=0 correspond à un mouvement d'axe unique selon l'axe x.
En pratique, on pourra tester par exemple que les proportions calculées appartiennent à un intervalle dont le centre est égal à la valeur attendue (dans l'exemple px=1 ,py=0) et dont la largeur est fonction de la tolérance du détecteur et du bruit sur les signaux.
On peut utiliser toute autre mode de calcul en lieu et place de la valeur moyenne qui permettra de dégager la valeur de tendance principale ou du signal mesuré selon chaque axe de l'ensemble capteur sur la fenêtre temporelle d'analyse. Par exemple, au moyen d'une médiane, de moyennes pondérées, ou de filtre passe bas ou de toute autre méthode similaire.
Dans un mode de réalisation, lesdits moyens de détection sont adaptés pour détecter une rotation et/ou une translation selon un axe sensiblement invariant à partir d'une moyenne et/ou d'une médiane selon chaque axe de l'ensemble capteur, et d'une comparaison d'une fonction desdites moyenne et/ou médiane avec un intervalle de valeurs.
La fonction desdites moyennes est par exemple une pondération par la somme des valeurs absolues desdites moyennes afin d'établir un indicateur des proportions du mouvement selon chaque par rapport au mouvement global.
Le centre de l'intervalle de valeurs utilisé pour la comparaison est déterminé selon la donnée de l'axe du mouvement que l'on cherche à détecter. La largeur de l'intervalle est réglée par la tolérance que l'on se donne sur la détection d'axe unique.
Par exemple, lesdits moyens de détection, adaptés pour déterminer une rotation et/ou une translation dudit ensemble capteur selon un axe unique sensiblement invariant sur ladite fenêtre temporelle, sont adaptés pour :
- calculer, sur ladite fenêtre temporelle, une moyenne et/ou médiane et/ou un filtrage passe-bas, selon chaque axe, des vitesses de rotation angulaires et/ou des vitesses linéaires ;
- calculer, sur ladite fenêtre, la somme des valeurs absolues des moyennes axiales ;
- calculer les proportions par le rapport entre les moyennes axiales et ladite somme des valeurs absolues des moyennes axiales ; et
- délivrer en sortie de tests, la valeur 1 si tous lesdits tests sont positifs, et la valeur 0 sinon.
Ainsi, on dispose d'un moyen peu complexe et mettant en œuvre un nombre réduit de calculs pour établir la détection d'un mouvement d'axe sensiblement invariant prédéterminé, adapté à des calculateurs limités.
En outre, on peut tester si chaque moyenne axiale est supérieure à un seuil minimum axial, et si chaque moyenne axiale appartient à un intervalle de valeur dépendant de l'axe détecté.
On valide ainsi qu'un mouvement significatif a été réalisé pour conforter la détection de mouvement selon un axe unique en testant que les amplitudes du mouvement sont supérieures à un seuil donné.
En outre, lesdits moyens de détection, adaptés pour déterminer une rotation et/ou une translation dudit ensemble capteur selon un axe unique sur une fenêtre temporelle glissante, sont adaptés pour appliquer un traitement sur ladite sortie de test pour améliorer la détection de mouvement d'axe unique en fonction du temps.
On évite des détections contradictoires dans le temps. On pourra réaliser ce post traitement de plusieurs manières différentes, comme par exemple par le comptage des occurrences de détection jusqu'à atteindre un seuil, ou par un filtrage passe bas ou moyennage des sorties.
En outre, lesdits moyens de détection, adaptés pour aapliquer ledit traitement comprend les étapes consistant à :
- appliquer un filtrage passe-bas sur ladite sortie de tests ;
- comparer la sortie du filtrage passe-bas avec un seuil minimal ; et
- détecter une rotation dudit ensemble capteur selon un axe unique lorsque la sortie du filtrage passe-bas dépasse ledit seuil minimal au moins une fois durant l'activation courante desdits moyens de réglage.
Ainsi, on évite des détections contradictoires dans le temps.
Dans un mode de réalisation, lesdits moyens de détection sont, en outre, adaptés pour :
- calculer, sur ladite fenêtre, la variance statistique des mesures, selon chaque axe de mesure desdits premiers moyens de détermination ; et
- tester, en outre, si chaque variance statistique axiale est inférieure à un seuil maximum axial.
Dans ce mode de réalisation, où l'on recherche une détection de mouvement de rotation d'axe sensiblement invariant, il est avantageux d'employer des moyens de mesure des vitesses de rotation du dispositif préhensible. Ces moyens sont par exemple des capteurs gyromètriques à au moins deux axes de mesure. Pour améliorer la détection de mouvement d'axe de rotation sensiblement invariant, il peut être intéressant d'adjoindre des capteurs accelérométriques au dispositif de mesure. On pourra ainsi
vérifier que les signaux mesurés sur les axes du capteur accélérométriques sont conformes au mouvement de rotation d'axe unique.
Par exemple, si le mouvement de rotation est réalisé selon un axe donné, et qu'il n'est pas attendu que l'utilisateur réalise simultanément des mouvements de translation du dispositif préhensible, les signaux de l'axe du capteur accélérométrique correspondant à l'axe de rotation doivent être quasi nuls, même lorsque le centre de rotation du mouvement imprimé au dispositif préhensible n'est pas confondu avec le capteur accélérométrique.
Il est donc possible, pour consolider la détection d'axe unique, de vérifier que cette hypothèse d'absence d'accélération significative sur l'axe de rotation détecté est vraie. On peut le faire par une mesure de la variance du signal d'accélération sur cet axe et un test par rapport à un seuil donné.
Ainsi, on améliore la détection d'axe unique, en la rendant plus spécifique en utilisant les informations issues de l'accéléromètre pour améliorer la détection de mouvement de rotation d'axe sensiblement invariant formée sur les signaux du gyromètre.
Ainsi, on limite les fausses détections.
Il est également proposé, selon un autre aspect de l'invention, un procédé de commande gestuelle d'un système (SYST), en utilisant un élément mobile de commande préhensible (TC) et un ensemble capteur de mouvement (EC) adapté pour mesurer les mouvements dudit élément mobile, dans lequel on détecte (DET) une rotation et/ou translation dudit élément mobile selon un axe sensiblement invariant sur une fenêtre temporelle, on règle (REG) la valeur d'au moins un paramètre dudit système, et on commande (CMD) une activation/désactivation desdits moyens de réglage de manière à activer ledit réglage lors d'une détection d'une rotation et/ou translation dudit élément mobile selon un axe sensiblement invariant sur une fenêtre temporelle.
L'invention sera mieux comprise à l'étude de quelques modes de réalisation décrits à titre d'exemples nullement limitatifs et illustrés par les dessins annexés sur lesquels :
- la figure 1 illustre schématiquement un dispositif selon un aspect de l'invention ;
- la figure 2 illustre schématiquement les étapes du fonctionnement du procédé selon un aspect de l'invention ;
- la figure 3 illustre schématiquement un exemple de procédé selon un aspect de l'invention ;
- la figure 4 illustre un calcul d'une proportion des amplitudes des mouvements de chaque axe par rapport à l'amplitude du mouvement global, selon un aspect de l'invention
- les figures 5a, 5b, 5c, 5d, 5e et 5f illustrent des signaux des étapes du fonctionnement du procédé selon un aspect de l'invention;
- les figures 6a, 6b, 6c, 6d et 6e illustrent la détection d'une rotation et/ou translation de l'élément mobile selon un axe sensiblement invariant par comparaison d'un paramètre représentatif du mouvement de l'élément mobile avec un seuil, selon un aspect de l'invention; et
- la figure 7 illustre schématiquement un exemple de réalisation d'un dispositif selon un aspect de l'invention, dans lequel, le module de détermination peut détecter des rotations selon des axes prédéterminés.
Dans l'ensemble de figures, les éléments ayants les mêmes références sont similaires.
Sur la figure 1 est représenté un dispositif DISP de commande gestuelle d'un système SYST, par exemple un téléviseur TV connecté à un boîtier multimédia décodeur BOX le dispositif DISP comprend un élément mobile de commande préhensible TC, par exemple une télécommande, et un ensemble capteur de mouvement EC adapté pour mesurer les mouvements dudit élément mobile selon au moins deux axes.
L'ensemble capteur EC peut être lié à l'élément mobile de commande préhensible TC ou comprendre une partie solidaire de l'élément mobile TC et une partie fixe dans un repère fixe lié au système, ou encore seulement une partie fixe dans un repère fixe lié au système, tel un capteur vidéo.
En variante, l'élément de commande à distance peut être une souris ou un boîtier pouvant être fixé sur un utilisateur.
Le dispositif DISP comprend, en outre, un module de détection DET d'une rotation et/ou translation de l'élément mobile selon un axe sur une
fenêtre temporelle, pouvant être une fenêtre glissante, comprenant au moins trois instants de mesures de l'ensemble capteur EC. En outre, le dispositif DISP comprend un module de réglage REG de la valeur d'au moins un paramètre du système, et un module de commande CMD d'activation/désactivation du module de réglage REG adapté pour activer le module de réglage REG lors d'une détection par le module de détection DET d'une rotation et/ou translation de l'élément mobile selon un axe.
Le module de détection DET peut être adapté pour déterminer la présence d'un mouvement significatif sur la fenêtre temporelle à partir d'un calcul de la valeur d'une variable représentative dudit mouvement et d'une comparaison de ladite valeur avec un seuil. Des exemples seront décrits plus loin.
En outre, le module de détection DET peut être capable de délivrer en sortie des valeurs de paramètres caractérisant ledit axe de rotation et/ou translation détecté, par exemple en utilisant une décomposition en valeurs singulières ou SVD pour "singular value décomposition" en langue anglaise.
Le module de commande CMD peut être adapté pour associer le module de réglage REG à au moins un paramètre du système en fonction desdites valeurs de paramètres caractérisant ledit axe de rotation et/ou translation détectée, et de valeurs définies correspondant à au moins un axe prédéfini de rotation et/ou translation.
Le module de détection DET peut être adapté pour délivrer en sortie une valeur d'un paramètre représentatif d'une amplitude du mouvement de rotation et/ou translation, et le module de commande CMD adapté pour commander une intensité de réglage au(x) paramètre(s) du système SYST en fonction de ladite ou lesdites amplitudes détectées par le module de détection DET.
L'ensemble capteur de mouvement EC peut comprendre un premier module de mesure MES1 des positions angulaires, des vitesses de rotation angulaires, ou des accélérations angulaires selon lesdits au moins deux axes de l'ensemble capteur de mouvement EC.
De même ou en combinaison, l'ensemble capteur de mouvement EC peut comprendre un deuxième module de mesure MES2 des positions
linéaires, des vitesses linéaires, ou des accélérations linéaires selon lesdits au moins deux axes.
Le module de détection DET est adapté pour détecter une rotation selon un axe à partir d'une moyenne selon chaque axe desdits au moins deux axes de l'ensemble capteur EC, et d'une comparaison d'une fonction de ces moyennes avec un seuil.
La figure 2 représente schématiquement les étapes du fonctionnement du procédé selon un aspect de l'invention.
Lors d'une étape 21 , l'ensemble capteur EC fournit des mesures du mouvement. Le module de détection DET teste, ensuite, dans une étape 22, s'il y a eu un mouvement significatif, auquel cas, dans une étape 23, le module de détection DET calcule la direction du mouvement, et dans une étape 24 optionnelle, le module de détection DET compare la direction calculée à l'étape 23 avec des axes prédéfinis, pour détecter si elle correspond à l'un d'eux. En variante, l'étape 22 de détection d'un mouvement significatif peut être faite, par exemple, en parallèle des étapes 23 et 24.
La figure 3 illustre schématiquement un exemple de réalisation du procédé de la figure 2.
Dans une étape 30, un gyromètre triaxial 3G fournit des mesures sur une fenêtre temporelle, par exemple une fenêtre glissante.
Une étape 31 optionnelle peut être réalisée consistant à remplacer les mesures fournies par le gyromètre triaxial 3G par leurs valeurs absolues respectives.
Les étapes 32 et 33 réalisent l'étape 22 de la figure 2; lors de l'étape 32, un calcul de la médiane GiDA des mesures ou de la valeur absolue des mesures selon chaque axe x, y et z de mesure du gyromètre 3G est effectué. Un test est ensuite effectué, lors d'une étape 33, si, pour chaque axe x, y et z de mesure du gyromètre 3G, la médiane GiDA est supérieure à un seuil minimum axial GiMT , ce qui, en cas de réalisation de ces conditions, valide la détection d'un mouvement significatif et permet de détecter une rotation selon un axe unique.
Ces étapes 32 et 33, optionnelles, correspondant à l'étape 22 optionnelle de la figure 2, peuvent être réalisées, en variante, en parallèle aux étapes 34, 35 et 36 réalisant les étapes 23 et 24 de la figure 2.
Lors de l'étape 34, un calcul de la moyenne et/ou médiane et/ou un filtrage passe-bas selon chaque axe, des vitesses de rotation angulaires et/ou des vitesses linéaires GiMA des mesures ou de la valeur absolue des mesures selon chaque axe x, y et z de mesure du gyromètre 3G est effectué. Un calcul, lors de l'étape 35, est ensuite effectué, visant à calculer la somme des valeurs absolues 3GMA = GiMA desdites moyennes axiales GiMA i
sur les trois axes x, y et z.
Enfin, lors de l'étape 36, un test est effectué, pour chaque axe x, y et z de mesure du gyromètre 3G, testant si la moyenne et/ou médiane et/ou un filtrage passe-bas GiMA appartient à un intervalle de valeurs [3GMA x (GiC - GiT ) ; 3GMA x (GiC + GiT)] centré sur un produit 3GMAxGiC de la somme 3GMA des GiMA selon chaque axe de mesure i et du pourcentage GiC de contribution de GiMA dans la somme 3GMA . La réalisation de ces conditions valide la détection d'un mouvement significatif et permet de détecter une rotation selon un axe unique.
De manière plus générale, le module de détection DET est adapté pour détecter une rotation et/ou une translation selon un axe sensiblement invariant sur ladite fenêtre temporelle à partir d'un calcul d'une proportion des amplitudes des mouvements de chaque axe par rapport à l'amplitude du mouvement global.
En d'autres termes, après calcul des moyennes au sens général du terme, i.e. comprenant les médianes, les moyennes, les filtrages passe- bas, les moyennes pondérées des échantillons du signal sur la fenêtre temporelle considérée, sur les différents axes disponibles, on cherche à établir les proportions de chacun des axes dans le mouvement global. En partant de l'étape où l'on dispose de ces N moyennes des signaux (sur la fenêtre temporelle) sur les N axes. Ensuite, pour former ces proportions, on calcule des versions normées du vecteur formé sur ces N moyennes au sens général du terme.
Par exemple, pour N = 2, en notant les axes X et Y (exemple d'un gyromètre biaxe, ou d'un capteur de vitesse de translation selon deux axes X et Y), on dispose d'une moyenne Mx selon X et une Moyenne My selon Y, et on forme le vecteur V = (Mx, My).
On calcule ces proportions en calculant: Mx / Norme(V) et My / Norme(V). On pourrait dire qu'on forme le vecteur : V/Norme(V).
Toute norme convient, par exemple :
- la norme 1 qui est égale à la somme des valeurs absolues : Abs(Mx) + Abs(My). On a alors Mx/ Norme(V) et My/Norme(V) qui sont des nombres compris entre -1 et 1 .
- la norme 2, définie par: Norme(V) =
Pareil, toutes les composantes de V/Norme(V) varient entre -1 et 1 .
- la norme p, la norme infinie ....
Ensuite, on teste que l'extrémité du vecteur des proportions (en pratique ce vecteur de proportions peut être le vecteur V/ Norme(V)), appartient à un petite surface (ou plus généralement, au delà de la dimension deux, à un petit volume) défini par les segments centrés sur les valeurs attendues. Si le test est positif, on déduit que le mouvement est d'axe sensiblement invariant donné. L'exemple en deux dimensions est illustré sur la figure 4. On peut facilement généraliser à des surfaces qui seraient des ronds, des ellipsoïdes, ....
Dans un mode de réalisation, le module de détermination DET d'une rotation et/ou translation de l'ensemble capteur EC selon un axe unique est adaptés pour :
- traiter les données fournies par l'ensemble capteur EC sur une fenêtre glissante, par exemple d'une durée de 200 ms, comme illustré sur la figure 5a représentant les mesures selon les trois axes x, y et z du gyromètre 3G ;
- calculer, sur ladite fenêtre glissante, la moyenne GiMA de la valeur absolue des mesures, selon chaque axe du premier module de mesure MES1 , par exemple selon chaque axe de mesure i d'un gyromètre ;
- calculer, sur ladite fenêtre glissante, la somme 3GMA = GiMA desdites i
moyennes axiales GiMA ;
- tester si chaque moyenne axiale GiMA est supérieure à un seuil minimum axial GiMT , pouvant être identique pour les différents axes i, et si chaque moyenne axiale GiMA appartient à un intervalle de valeur [3GMA x {GiC - GiT) ; 3GMA x {GiC + GiT )] centré sur un produit
3GMAxGiC de la somme 3GMA des moyennes GiMA selon chaque axe de mesure i et du pourcentage GiC de contribution de ladite moyenne axiale GiMA dans ladite somme 3GMA ;
- délivrer en sortie de tests, la valeur 1 si tous lesdits tests sont positifs, et la valeur 0 sinon ;
- appliquer un filtrage passe-bas sur ladite sortie de tests, par exemple un filtre de Butterworth d'ordre 2, et de fréquence de coupure relative de 0,025 ;
- comparer la sortie du filtrage passe-bas avec un seuil minimal S1 min, pouvant, par exemple compris entre 0 et 1 , tel 0,85 ; et
- détecter une rotation de l'ensemble capteur EC selon un axe unique lorsque la sortie du filtrage passe-bas dépasse le seuil minimal S1 min au moins une fois durant l'activation courante du module de régulation REG.
Dans un autre mode de réalisation, le module de détermination DET d'une rotation et/ou translation de l'ensemble capteur EC selon un axe unique est adapté pour :
- traiter les données fournies par l'ensemble capteur EC sur une fenêtre glissante, par exemple d'une durée de 200 ms, comme illustré sur la figure 5a représentant les mesures selon les trois axes x, y et z du gyromètre 3G ;
- calculer, sur ladite fenêtre glissante, la médiane GiDA de la valeur absolue des mesures, selon chaque axe du premier module de mesure
MES1 , par exemple selon chaque axe de mesure i d'un gyromètre, comme illustré sur la figure 5c ;
- calculer, sur ladite fenêtre glissante, la moyenne GiMA de la valeur absolue des mesures, selon chaque axe de mesure i du gyromètre ; - calculer, sur ladite fenêtre glissante, la somme 3GMA = GiMA desdites i
moyennes axiales GiMA comme illustré sur la figure 5d ;
- tester si chaque médiane axiale GiDA est supérieure à un seuil minimum axial GiMT , pouvant être identique pour les différents axes i, comme illustré sur la figure 5c, et si chaque moyenne axiale GiMA appartient à un intervalle de valeurs [3GMA x (GiC - GiT) ; 3GMA x (GiC + GÏT )] centré sur un produit 3GMAxGiC de la somme 3GMA des moyennes GiMA selon chaque axe de mesure i et du pourcentage GiC de contribution de ladite moyenne axiale GiMA dans ladite somme 3GMA comme illustré sur la figure 5d, les MIN et MAX correspondant aux bornes des intervalles respectifs ;
- délivrer en sortie de tests, la valeur 1 si tous lesdits tests sont positifs, et la valeur 0 sinon ;
- appliquer un filtrage passe-bas sur ladite sortie de tests, par exemple un filtre de Butterworth d'ordre 2, et de fréquence de coupure relative de 0,025, comme illustré sur la figure 5f ;
- comparer la sortie du filtrage passe-bas avec un seuil minimal S1 min , comme illustré sur la figure 4f ; et
- détecter une rotation et/ou translation dudit ensemble capteur EC selon un axe unique lorsque la sortie du filtrage passe-bas dépasse le seuil minimal S1 min au moins une fois durant l'activation courante du module de régulation REG, comme illustré sur la figure 5f.
Le seuil minimal S1 min peut être fixé, ou, en variante être adapté à l'utilisateur afin d'augmenter les performances du dispositif. La figure 6a montre une version fonctionnelle de la figure 5f. Le seuil S1 min sépare les zones qui représentent les différents modes (réglage et reconnaissance de gestes). Si la courbe de signal franchit le seuil, le dispositif entre en mode de réglage. C'est le cas de la figure 6a.
La figure 6b montre une courbe sur laquelle le signal reste en dessous du seuil minimal S1 min. Le point R à la fin de la courbe représente le moment auquel l'utilisateur relâche le bouton à la fin de son mouvement. La valeur Prox est définie comme le maximum de la courbe et représente la proximité de la courbe au seuil minimal S1 min. Dans cet exemple, la valeur Prox est d'environ 50% de la valeur du seuil minimal S1 min, qui est la région souhaitée et optimale. Comme le signal ne passe pas au-dessus du seuil minimal S1 min, le dispositif entre dans le mode de reconnaissance de gestes et compare le geste de l'utilisateur à la bibliothèque de gestes.
La figure 6c illustre le cas dans lequel le signal reste également inférieur au seuil minimal S1 min, mais s'en approche. La valeur Prox est proche de 100% de la valeur de seuil minimal S1 min. Encore une fois, le dispositif entre dans le mode de reconnaissance de gestes et compare le geste de l'utilisateur avec les gestes de la bibliothèque de gestes. Toutefois, la proximité de la courbe et du seuil minimal S1 min signifie qu'il existe une probabilité élevée d'une fausse détection; c'est-à-dire que le dispositif puisse entrer dans le mode de réglage, tandis que le mode souhaité est le mode de
reconnaissance de gestes. Pour diminuer la probabilité d'une fausse détection, le seuil minimal S1 min peut être augmenté à une valeur S2, de sorte que la valeur Prox soit proche de 50% de la nouvelle valeur de seuil S2.
La figure 6d illustre la situation inverse de celle de la figure 6c.
Dans ce cas, le signal reste bien en deçà des seuils S1 min et S2 et la valeur Prox est très faible. Cela signifie que le seuil minimal S1 min est probablement réglé sur une valeur trop importante. Par conséquent, il est possible que l'utilisateur effectue un mouvement parce qu'il veut entrer dans le mode de réglage, mais que le seuil minimal S1 min soit trop élevé pour qu'il l'atteigne facilement. Ainsi, la courbe représentant le signal n'arrive pas à dépasser le seuil et le dispositif utilise le mode de reconnaissance de gestes et non le mode de réglage souhaité. Pour résoudre ce problème le seuil minimal S1 min est diminué à une valeur S3, de telle sorte que la valeur Prox se rapproche à nouveau de 50% de la nouvelle valeur de seuil S3.
L'adaptation du seuil, comme indiqué dans les figures 6c et 6d peut être fait dès que survient un événement unique pour lequel la valeur Prox est trop élevée ou trop basse. Sinon, le dispositif peut également adapter le seuil minimal S1 min uniquement après plusieurs événements potentiellement problématiques. La quantité de changement appliquée au seuil peut être réglée pour obtenir la réactivité souhaitée du dispositif.
La figure 6e illustre une autre situation dans laquelle le seuil minimal S1 min est adapté pour augmenter le taux de bonnes détections du dispositif. Dans ce cas, la courbe du signal transmis dépasse le seuil minimal S1 min. En conséquence, le dispositif entre dans le mode de réglage, et un retour visuel est proposé à l'utilisateur. Or dans cette situation, on suppose que l'intention de l'utilisateur était d'activer une fonction de reconnaissance de gestes. Dès que l'utilisateur voit le retour visuel, il relâche le bouton (au moment R) pour mettre fin à son geste car l'utilisateur se rend compte qu'il est entré dans le mode de réglage alors que ce n'était pas son intention. Ainsi, cet événement représente une fausse détection du mode de réglage. Comme l'utilisateur a relâché le bouton rapidement, la durée At du mode de réglage est assez courte (environ 500 ms). Grâce à un test sur cette durée, il est possible au système de valider avec une forte probabilité, si la décision d'entrer en mode réglage constitue une fausse détection. Les exécutions
erronées du mode de commande sont détectées en comparant la durée At à un seuil de délai temporel. Si la durée est inférieure au seuil de délai temporel, le seuil de détection de l'intention de l'utilisateur, entre réglage ou geste sera adapté. Dans ce cas seuil S1 min est trop faible, et le dispositif augmente le seuil de S1 min à S2 pour éviter de futures fausses détections.
Comme dans les situations des figures 6c et 6d, l'adaptation du seuil peut être fait dès que survient un événement unique ou seulement après des multiples fausse détections.
En outre, pour les deux modes de réalisations qui viennent d'être décrits, le deuxième module de mesure MES2 de l'ensemble capteur de mouvement EC peut comprendre un accéléromètre à au moins deux axes de mesure. Dans l'exemple décrit, l'accéléromètre a trois axes de mesure.
En ce cas, le module de détermination DET d'une rotation et/ou translation de l'ensemble capteur EC selon un axe unique, est, en outre, adapté pour :
- calculer, sur la fenêtre glissante, la variance statistique AiV des mesures, selon chaque axe de mesure i de l'accéléromètre ; et
- tester, en outre, si chaque variance statistique axiale AiV est inférieure à un seuil maximum axial AiMV, pouvant, par exemple, être identique sur chaque axe.
Ces tests supplémentaires, permettent d'améliorer la précision du dispositif.
Le module de détermination DET est adapté pour détecter au moins une rotation et/ou translation de l'ensemble capteur EC selon au moins un axe défini.
Ainsi, il est possible de ne détecter que des rotations et/ou translations par rapport à des axes prédéterminés, et limiter la quantité de données à traiter en sortie du module de détermination DET.
Dans l'ensemble des modes de réalisations possibles, l'ensemble capteur EC est disposé dans l'élément de commande, mais le module de détermination DET, le module de commande CMD, et le module de réglage REG peuvent être disposés à l'extérieur de l'élément mobile de commande préhensible TC, dans un élément interfacé avec le système SYST, tel un décodeur multimédia, ou directement dans le système SYST.
La figure 7 illustre schématiquement un exemple de réalisation d'un dispositif selon un aspect de l'invention, dans lequel, le module de détermination DET peut détecter des rotations, en l'espèce, de manière non limitative, trois rotations, selon des axes prédéterminés.
Sur cet exemple de réalisation, le module de détermination DET comprend trois éléments de détermination AU_R1 , AU_R2, et AU_R3, d'une rotation selon un axe unique défini respectif.
Le module de réglage REG comprend trois éléments d'estimation EST_A1 , EST_A2, et EST_A3, pour estimer respectivement les angles des rotations par rapport aux trois axes des rotations détectées par les éléments de détermination AU_R1 , AU_R2, et AU_R3.